unity使用Raycast在其他对象后面单击对象

时间:2018-08-20 23:11:26

标签: unity3d 2d-games raycasting gameobject

有很多这样的问题,但是我没有找到解决问题的有效方法。

我想单击对撞机后面的对象,这是我的代码:

[{"make":"Ford"}, {"trim":"escape"}, {"year":2014}]

我将此代码放在附加到第一个对象的脚本中,但是永远不会调用调试日志。 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果我对您的问题理解正确,那么您想单击黄色球体(参见图片),并想要白色立方体的名称吗?

enter image description here

有两种可能的方法:

1。忽略射线广播层

您可以为黄色球体提供统一的标准层“忽略Raycast”:

enter image description here

然后您的代码应该可以工作(我在鼠标左键上添加了鼠标右键)

    void Update()
{
    if (Input.GetMouseButtonDown(0)) // Click on left mouse button
    {
        RaycastHit hit;
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        if (Physics.Raycast(ray, out hit))
        {
            Debug.Log(hit.transform.name);
        }
    }
}

2。使用图层蒙版

请参阅:Using Layers and Bitmask with Raycast in Unity

如果这不是您要查找的内容,请提供更多信息和问题的屏幕快照。