Kudan Unity:在触摸时销毁游戏对象

Kudan Unity :Destroying GameObject on Touch

我正在使用 Unity 中的 Kudan 插件构建 android 应用程序。我正在使用无标记模式。当我点击(触摸)以这种无标记模式生成的模型时,我想摧毁它。我正在使用下面列出的 Raycast 脚本。我尝试将脚本附加到 Kudan 相机。我还创建了一个 public 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 语句有左括号等,可能是:

  • 您还没有为模型指定 "chair" 标签。如果你的射线击中模型,但模型没有正确的标签,它将被忽略。
  • Ray 的射程不够远,无法击中任何东西(如评论中所述)。你没有指定距离,理论上应该意味着没有最大距离,但你永远不知道,Unity 可能有一些奇怪的默认值或其他东西。
  • 您的模型没有对撞机。对象需要碰撞器,否则物理引擎无法在射线和对象之间注册 "collision"。

但实际上,更简单且可能更好的方法是根本不使用 Raycast。如果您在脚本中创建方法:

void OnMouseDown
{
    Destroy(gameObject);
}

并将该脚本附加到您的模型,然后当用户点击模型(或点击移动设备)时,只要它有碰撞器,它就会被销毁。