如何在 Unity 中更改 Spine 动画?
How do change Spine animations in Unity?
我有一个条件 if then 语句 运行,我希望在满足特定条件时改变动画。出于某种原因,当它开始时,会播放正确的动画,但当它被改变时,动画不会改变。代码是 LateUpdate()
中的 运行。我做了一个 hack 来测试动画的变化,但它也不起作用。
我读过的所有内容都说要使用 SetAnimation
,它会覆盖之前的动画,但这似乎不起作用。这是破解我想要的结果的代码。
rightCrowdMemberAnimation.state.SetAnimation (0, "idle_07", true);
if (Input.GetKeyDown (KeyCode.A)) {
rightCrowdMemberAnimation.state.SetAnimation (0, "yay_07", true);
}
感谢您的帮助。
奇怪的是,在检查器中它说动画已经改变,但视觉上并没有改变。
注意:这就是我想要完成的。看起来当我在 LateUpdate
时,当我点击 A 时它正在重置回空闲状态。我仍然不确定为什么它不会改变下面的动画。我以为A键的技巧在执行上是相似的,但我想我错了。
void Start(){
Assume I did a random roll of color {red,blue,yellow}
}
真正的问题是
void LateUpdate(){
if (color = red) {
rightCrowdMemberAnimation.state.SetAnimation (0, "idle_07", true);
} else if (color = blue) {
rightCrowdMemberAnimation.state.SetAnimation (0, "idle_08", true);
} else if (color = yellow){
rightCrowdMemberAnimation.state.SetAnimation (0, "idle_09", true);
}
}
在检查器中,我想要显示的动画就在那里。只是我调用的动画没有出现。
基本上,您必须在 SkeletonAnimation
脚本上更改 属性 AnimationName
。这是示例:
private SkeletonAnimation skeletonAnimation;
void Awake()
{
skeletonAnimation = GetComponent<SkeletonAnimation>();
}
void LateUpdate(){
if (color = red) {
skeletonAnimation.AnimationName = "idle_07";
} else if (color = blue) {
skeletonAnimation.AnimationName = "idle_08";
} else if (color = yellow){
skeletonAnimation.AnimationName = "idle_09";
}
}
我有一个条件 if then 语句 运行,我希望在满足特定条件时改变动画。出于某种原因,当它开始时,会播放正确的动画,但当它被改变时,动画不会改变。代码是 LateUpdate()
中的 运行。我做了一个 hack 来测试动画的变化,但它也不起作用。
我读过的所有内容都说要使用 SetAnimation
,它会覆盖之前的动画,但这似乎不起作用。这是破解我想要的结果的代码。
rightCrowdMemberAnimation.state.SetAnimation (0, "idle_07", true);
if (Input.GetKeyDown (KeyCode.A)) {
rightCrowdMemberAnimation.state.SetAnimation (0, "yay_07", true);
}
感谢您的帮助。
奇怪的是,在检查器中它说动画已经改变,但视觉上并没有改变。
注意:这就是我想要完成的。看起来当我在 LateUpdate
时,当我点击 A 时它正在重置回空闲状态。我仍然不确定为什么它不会改变下面的动画。我以为A键的技巧在执行上是相似的,但我想我错了。
void Start(){
Assume I did a random roll of color {red,blue,yellow}
}
真正的问题是
void LateUpdate(){
if (color = red) {
rightCrowdMemberAnimation.state.SetAnimation (0, "idle_07", true);
} else if (color = blue) {
rightCrowdMemberAnimation.state.SetAnimation (0, "idle_08", true);
} else if (color = yellow){
rightCrowdMemberAnimation.state.SetAnimation (0, "idle_09", true);
}
}
在检查器中,我想要显示的动画就在那里。只是我调用的动画没有出现。
基本上,您必须在 SkeletonAnimation
脚本上更改 属性 AnimationName
。这是示例:
private SkeletonAnimation skeletonAnimation;
void Awake()
{
skeletonAnimation = GetComponent<SkeletonAnimation>();
}
void LateUpdate(){
if (color = red) {
skeletonAnimation.AnimationName = "idle_07";
} else if (color = blue) {
skeletonAnimation.AnimationName = "idle_08";
} else if (color = yellow){
skeletonAnimation.AnimationName = "idle_09";
}
}