【发布时间】:2014-01-02 05:37:18
【问题描述】:
我正在尝试删除单击鼠标的对象。我正在使用新的 Unity3D 4.3 制作 2D 游戏。这是我正在使用的代码
void Update () {
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray,out hit))
{
isHit = false;
Destroy(GameObject.Find(hit.collider.gameObject.name));
}
}
}
控件没有进入内部 if 循环。 (isHit 没有被设置为假)。
【问题讨论】:
-
对象有碰撞器吗?它有对撞机和刚体吗?
-
是的,它包含一个对撞机和一个刚体
-
我使用了 Physics2D 并且它有效!这是修改后的代码 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Vector2 原点 = 新 Vector2(ray.origin.x,ray.origin.y); RaycastHit2D hit = Physics2D.Linecast(orgin,-Vector2.up,1
-
不是你问的真正的一部分,但在这一行:
Destroy(GameObject.Find(hit.collider.gameObject.name));find 不需要。只需执行Destroy(hit.collider.gameObject);就可以了。 -
由于错误,我无法使用该条件。它说,“无法从'UnityEngine.Ray 转换为UnityEngine.vector2'。”与雷射线相同。
标签: unity3d unityscript