Unity 射线检测

您所在的位置:网站首页 unity射线 Unity 射线检测

Unity 射线检测

2023-08-16 01:44| 来源: 网络整理| 查看: 265

射线检测 简介作用代码实现实际用法

简介

射线检测是Unity开发游戏中经常会用到的一个东西,其原理是鼠标点击之后,从摄像机发出一条射线,选中第一个所照射到的物体,需要注意的是,这里的射线只是假象的,并不真实存在,但是它确实能帮我们完成大部分的游戏中的点击事件。

作用

在游戏中我们经常会希望点击人物进行对话、点击怪兽进行攻击、点击物品进行拾取等功能,这些东西又都不是Button,所以这里我们就能用到射线检测,实现点击不同物体有不同的效果。

代码实现 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; public class RayMove : MonoBehaviour { public NavMeshAgent nav; // Use this for initialization void Start () { } // Update is called once per frame void Update () { if (Input.GetMouseButtonDown(0)) { //如果点击鼠标左键,从主相机发射一条射线,射向鼠标点击的位置 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //定义一个RaycastHit变量用来保存被撞物体的信息; RaycastHit hit; //如果碰撞到了物体,hit里面就包含该物体的相关信息; if (Physics.Raycast(ray,out hit)) { nav.SetDestination(hit.point); } } } } 实际用法 hit.point; //碰撞点的位置; hit.collider.gameobject; //碰撞到的物体; //假设我们点击该物体之后销毁该物体 Destroy(hit.collider.gameobject); //假设我们点击地面生成一个该物体 Instantiate(gameobject, hit.point, transform.rotation); // 代码挂载上的物体,点击的位置,原角度


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3