【发布时间】:2018-08-20 23:11:26
【问题描述】:
这样的问题很多,但我没有找到有效的解决方案。
我想点击碰撞器后面的对象,这是我的代码:
void Update () {
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
Debug.Log(hit.transform.name);
}
}
我将此代码放在附加到第一个对象的脚本中,但永远不会调用调试日志。 有什么想法吗?
【问题讨论】:
-
这应该可以了...等等,等等,您使用的是 2D 物理对象吗?
-
据我所知,这只有在前景对象位于单独的图层上时才可行,然后可以被光线投射忽略。
-
但是为什么,你为什么要这样做?另一个对象后面是什么类型的对象。如果我们了解您这样做的原因,您的问题的答案可能很容易,因为这可能是另一种实现方式。
-
@Programmer 我正在使用一个大球体对撞机(激活 isTrigger)来查看敌人何时进入特定区域,我的问题是它有效但是当我尝试单击我击中的对象时对撞机(所以我的问题是,我怎么能忽略第一个对撞机?)无论如何,xFL 给了我一个非常好的解决方案
-
@Draco18s 只是出于好奇,为什么二维对象可能是个问题?
标签: unity3d 2d-games raycasting gameobject