【发布时间】:2020-11-14 00:47:04
【问题描述】:
using UnityEngine;
public class Shoot: MonoBehaviour
{
public Camera cam;
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
shooot();
}
}
void shooot()
{
RaycastHit hit;
if (Physics.Raycast(cam.transform.position, cam.transform.forward, out hit))
{
Debug.Log(hit.transform.name);
}
}
其他对象有一个盒子碰撞器和刚体。 Raycast 检测到“Cube1”,并且在我对其他物体进行 raycast 拍摄然后再次在“Cube1”处拍摄 raycast 之后,此代码没有检测到它。为什么?
【问题讨论】:
-
您尝试debugging your code 并查看该方法是否已执行?如果你说它没有检测到它……它是检测到其他东西还是什么也没检测到?
-
我正在使用 Probuilder 构建我的环境。我认为这就是问题所在。我确实尝试调试我的代码。如果我对已经检测到的东西进行光线投射,它不会打印任何东西。谢谢!
-
不,不是probuilder造成的。我查过了!
-
如果调试显示什么都没有打印,下一个调试是添加行 debug.log("shooot was called");就在shoot()的函数调用之前;因为输入可能有问题?
-
能否在测试结束时显示完整的控制台输出?
标签: c# unity3d raycasting