首页 > 解决方案 > Unity raycast 未检测到之前已检测到的对象

问题描述

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 之后,此代码没有检测到它。为什么?

图像1

img2

图像3

标签: c#unity3draycasting

解决方案


在 Unity 编辑器的控制台中按折叠以切换打印和日志应堆叠(折叠)的位置,它仍应记录两次,但右侧的计数器不会显示为两个单独的日志,而是增加显示相同的次数已记录相同的行。


推荐阅读