【问题标题】:What's the best way to trigger an animation from the input of another object?从另一个对象的输入触发动画的最佳方法是什么?
【发布时间】:2019-04-15 09:22:30
【问题描述】:

我是 Unity 和 c# 的新手。

当我在左球体上轻按时,应该会出现平面和右球体。

我认为左侧球体上的 OnPointerClicked 事件会触发平面和右侧球体的动画(使用 if/else 语句)。 这是要走的路吗? 如果是这样,我该怎么做?

或者有更简单的方法吗?

这是左球体的脚本:

【问题讨论】:

    标签: unity3d hololens mrtk


    【解决方案1】:

    阅读:IPointerClickHandler.OnPointerClick

    您需要在 MonoBehaviour 类中实现接口,即IPointerClickHandler。当你在游戏中点击对象时,它会向EventSystem发送一个点击事件,这会触发你在OnPointerClick方法中的函数体。

    因此,正如文档所述,还要确保您有一个 EventSyetem(一个附有脚本的空游戏对象,或将组件附加到您的主摄像头)。

    【讨论】:

    • 谢谢,我回家后再试试。但是我对动画的处理方式是“正常”的方式吗?
    • @LeonHomburg 严格来说,使用 Unity 做任何事情都没有“正常”的方式,它无法提供许多功能,您必须自己完成工作。但在某种程度上,是的,它应该会做这样的事情。
    • 我尝试使用 IPointerClickHandler,但我不知道这是否适用于 HoloLens 的空气水龙头?所以我遇到了“可交互脚本”(microsoft.github.io/MixedRealityToolkit-Unity/Documentation/…)。 MainCamera 上是事件系统脚本。可交互脚本位于球体上。我将飞机放入球体的可交互脚本中,并在飞机脚本中获取触发动画的功能。但是不同的状态(默认、焦点、按下)和 OnClick 事件都不起作用。 imgur.com/kNISO1t.
    • @LeonHomburg 您根本不需要任何配置。创建一个新球体 -> 附加一个继承 IPointerClickHandler 并实现 OnPointerClick 的脚本 -> 确保事件系统存在 -> 完成。
    • @LeonHomburg 有大量关于OnPointerClick 的教程和帖子请先谷歌。同样出于调试目的,您可以将 Debug.Log 放入您的 OnPointerClick 方法中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    相关资源
    最近更新 更多