早教吧 育儿知识 作业答案 考试题库 百科 知识分享

unity3d用射线判断物体碰撞。当物体进入和离开范围时都给出提示,为什么我的脚本只生效了一次?//rayCastif(Physics.Raycast(transform.position,fwd,outrayHit,rayCastRange)){print(rayHit.collider.gameObject.name

题目详情
unity3d 用射线判断物体碰撞。当物体进入和离开范围时都给出提示,为什么我的脚本只生效了一次?//rayCast if (Physics.Raycast(transform.position,fwd,out rayHit,rayCastRange)) { print(rayHit.collider.gameObject.name + " " + rayHit.distance); } else { print("nothing");//这一输出只在开始运行出现,当上面输出一次后,即使前方没有物体,也不再输出了. }
▼优质解答
答案和解析
RaycastHit rayHit; void Update() { Vector3 fwd = transform.TransformDirection(Vector3.forward); if (Physics.Raycast(transform.position, fwd, 10)) print("There is something in front of the object!"); if (Physics.Raycast(transform.position, fwd, out rayHit, 1)) { print(rayHit.collider.gameObject.name + " " + rayHit.distance); } else { print("nothing");//这一输出只在开始运行出现,当上面输出一次后,即使前方没有物体,也不再输出了. } } 将你的代码放到update里面 经过测试没有问题:)