Kudan Unity:触碰破坏GameObject



我使用Unity中的Kudan插件来构建android应用程序。我使用无标记模式。当我点击(触摸)模型时,它在这种无标记模式下生成,我想摧毁它。我使用Raycast脚本如下所示。我尝试将脚本附加到Kudan相机。我还创建了一个公共Camera游戏对象,并将Kudan Camera传递给它。然而,这两种选择都行不通。

有人知道我做错了什么吗?

public Gamobject model;
if (Input.touchCount > 0) 
        RaycastHit hit;
            Ray ray = Camera.main.ScreenPointToRay (Input.GetTouch (0).position);
        if (Physics.Raycast (ray, out hit)) 
        {
            if (hit.collider.gameObject.tag == "chair") 
            {
                Destroy (model); 
            }
        }
    }  

提前感谢!

假设你的实际代码是正确的,说的是GameObject而不是Gamobject,你的if语句有一个前大括号等,它可能是:

  • 你还没有给你的模型"椅子"标签。如果你的射线击中了模型,但是模型没有正确的标签,它将被忽略。
  • 射线的距离不足以击中任何东西(正如评论中提到的)。你没有指定一个距离,这在理论上应该意味着没有最大距离,但你永远不知道,Unity可能有一些奇怪的默认值或其他东西。你的模型没有碰撞器。物体需要一个碰撞器,否则物理引擎无法记录光线和物体之间的"碰撞"。

但实际上,一个更简单和可能更好的方法是根本不使用光线投射。如果你在脚本中创建了一个方法:

void OnMouseDown
{
    Destroy(gameObject);
}

并将该脚本附加到模型上,然后当用户点击模型(或在移动设备上点击)时,如果它有碰撞器,它将被销毁。

最新更新