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);
}
并将该脚本附加到您的模型,然后当用户点击模型(或点击移动设备)时,只要它有碰撞器,它就会被销毁。
我正在使用 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);
}
并将该脚本附加到您的模型,然后当用户点击模型(或点击移动设备)时,只要它有碰撞器,它就会被销毁。