gpt4 book ai didi

c# - 统一: Instantiating prefab with animator

转载 作者:太空宇宙 更新时间:2023-11-03 15:57:27 25 4
gpt4 key购买 nike

我正在使用 Unity 4.3.4 引擎制作 2D 平台游戏。我创建了一个简单的预制件,它有两个动画:“空闲”和“死亡”(我使用“动画师”)和脚本来控制这个动画。

问题是:当我实例化这个预制件的克隆时,它们总是显示“空闲”动画并且在需要时不打开“死亡”。

pos = new Vector3 (-5, 4, 0) * TileSize; 
newObject = Instantiate (Bonus, pos, Quaternion.identity) as GameObject;

但有趣的是:我找到了一种让动画效果很好的方法。只需在实例化后添加一个字符串,如下所示:

newObject.animation["boxNew"].speed=1;

或这个(或任何试图用“animaton”操作的字符串):

newObject.animation.enabled=true;

当然我在这个字符串上得到异常:“MissingComponentException:没有'Animation'附加到“BonusBlock(Clone)”游戏对象”。这是真的,我真的没有 Animation 组件,我有 Animator。但是为什么一切都是这样的呢?谁能解释一下?

最佳答案

动画器实际上仅在您使用新的 mecanim/state flow 动画器全力以赴时才使用,对于一个简单的示例,您可能想做的是向您的预制件添加一个动画(而不是动画器)组件,并分配您的 2 个动画到所述动画组件的检查器中的动画列表。之后你可以在对象上使用 newObject.animation.Play("death");在你想要它触发时播放死亡动画。或者使用类似 newObject.animation.CrossFade("death");对于混合动画。

在这里找到 -> http://docs.unity3d.com/Documentation/ScriptReference/Animation.html

关于c# - 统一: Instantiating prefab with animator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22967911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com