【问题标题】:Unity/C#: How to disable component in animation state machineUnity/C#:如何在动画状态机中禁用组件
【发布时间】:2021-10-12 09:17:06
【问题描述】:

当动画状态机达到某个状态时,我正在尝试禁用 gameObject obj 上的 BoxCollider2D。我已经看遍了,没有运气。有什么帮助!

GameObject obj;
    
    void OnStateEnter(){
        obj.GetComponent<BoxCollider2D>().enabled = false;
    }

这就是我所拥有的,但我不断收到编译器错误。我对 Unity 和 C# 比较陌生(尽管我在 C 和 C++ 方面有扎实的背景)。

【问题讨论】:

  • 请使用正确的标签!请注意,unityscript 是或更好的是曾经是一种 JavaScript 风格,类似于早期 Unity 版本中使用的自定义语言,并且现在已经不推荐使用了!如果您不使用该语言,请不要使用该标签。

标签: c# unity3d animation


【解决方案1】:

我对此没有太多经验,但我对此进行了一些研究。我认为问题可能是你的班级不是来自 StateMachineBehaviour。它可能仍然源自 Monobehaviour。看看这个文档。 https://docs.unity3d.com/ScriptReference/StateMachineBehaviour.html

如果不是,可能是因为 OnStateEnter 需要参数才能工作。该文档有一个示例,因此我建议您尝试一下,看看它是如何工作的。

PS:我认为如果您确切地提到您遇到的错误,它可能对社区更有帮助。编译器错误可能是因为其他原因。

【讨论】:

    猜你喜欢
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 2022-01-15
    相关资源
    最近更新 更多