Unity raycast 未检测到之前已经检测到的对象
Unity raycast not detecting an object which has already been detected by it before
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”,在我向其他物体发射射线然后再次向“Cube1”发射射线后,此代码未检测到它。为什么?
在 Unity Editor 的控制台中按 Collapse 以切换打印和日志应该堆叠(折叠)或不堆叠的位置,它仍然应该记录两次,但不是显示为两个单独的日志,而是右侧的计数器增加显示记录了多少次相同的行。
Unity 会记录所有内容。只是如果您多次记录相同的输出,Unity 会折叠成一行。您可以通过输出右侧指示的数字看到这一点。
(图片取自https://learn.unity.com/tutorial/introduction-to-the-console-window#5f68b4eeedbc2a002022b83d)
如果您切换标记的“折叠”按钮,它将显示每一个输出。
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”,在我向其他物体发射射线然后再次向“Cube1”发射射线后,此代码未检测到它。为什么?
在 Unity Editor 的控制台中按 Collapse 以切换打印和日志应该堆叠(折叠)或不堆叠的位置,它仍然应该记录两次,但不是显示为两个单独的日志,而是右侧的计数器增加显示记录了多少次相同的行。
Unity 会记录所有内容。只是如果您多次记录相同的输出,Unity 会折叠成一行。您可以通过输出右侧指示的数字看到这一点。
(图片取自https://learn.unity.com/tutorial/introduction-to-the-console-window#5f68b4eeedbc2a002022b83d)
如果您切换标记的“折叠”按钮,它将显示每一个输出。