Animation 如何在Unity中更改脊椎动画?
我有一个条件if-then语句运行,如果满足某个条件,我希望动画改变。由于某些原因,当它启动时,会播放正确的动画,但当它更改时,动画不会更改。代码正在Animation 如何在Unity中更改脊椎动画?,animation,unity3d,spine,Animation,Unity3d,Spine,我有一个条件if-then语句运行,如果满足某个条件,我希望动画改变。由于某些原因,当它启动时,会播放正确的动画,但当它更改时,动画不会更改。代码正在LateUpdate()中运行。我做了一个黑客测试的动画变化,它也不会工作 我读到的所有内容都说要使用SetAnimation,它将超越上一个动画,但这似乎不起作用。这是我想要的破解结果的代码 rightCrowdMemberAnimation.state.SetAnimation (0, "idle_07", true); if (Input.
LateUpdate()
中运行。我做了一个黑客测试的动画变化,它也不会工作
我读到的所有内容都说要使用SetAnimation
,它将超越上一个动画,但这似乎不起作用。这是我想要的破解结果的代码
rightCrowdMemberAnimation.state.SetAnimation (0, "idle_07", true);
if (Input.GetKeyDown (KeyCode.A)) {
rightCrowdMemberAnimation.state.SetAnimation (0, "yay_07", true);
}
谢谢你的帮助
奇怪的是,在inspector中,它说动画已经改变了,但从视觉上看它没有改变
注:这就是我试图实现的目标。当我在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);
}
}
在inspector中,我想显示的动画就在那里。只是我调用的动画没有显示。基本上,您必须更改
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";
}
}
私有骨架动画骨架动画;
无效唤醒()
{
skeletonAnimation=GetComponent();
}
void LateUpdate(){
如果(颜色=红色){
skeletonAnimation.AnimationName=“idle_07”;
}否则如果(颜色=蓝色){
skeletonAnimation.AnimationName=“idle_08”;
}否则如果(颜色=黄色){
skeletonAnimation.AnimationName=“idle_09”;
}
}
基本上,您必须更改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";
}
}
私有骨架动画骨架动画;
无效唤醒()
{
skeletonAnimation=GetComponent();
}
void LateUpdate(){
如果(颜色=红色){
skeletonAnimation.AnimationName=“idle_07”;
}否则如果(颜色=蓝色){
skeletonAnimation.AnimationName=“idle_08”;
}否则如果(颜色=黄色){
skeletonAnimation.AnimationName=“idle_09”;
}
}