Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Animation 如何在Unity中更改脊椎动画?_Animation_Unity3d_Spine - Fatal编程技术网

Animation 如何在Unity中更改脊椎动画?

Animation 如何在Unity中更改脊椎动画?,animation,unity3d,spine,Animation,Unity3d,Spine,我有一个条件if-then语句运行,如果满足某个条件,我希望动画改变。由于某些原因,当它启动时,会播放正确的动画,但当它更改时,动画不会更改。代码正在LateUpdate()中运行。我做了一个黑客测试的动画变化,它也不会工作 我读到的所有内容都说要使用SetAnimation,它将超越上一个动画,但这似乎不起作用。这是我想要的破解结果的代码 rightCrowdMemberAnimation.state.SetAnimation (0, "idle_07", true); if (Input.

我有一个条件if-then语句运行,如果满足某个条件,我希望动画改变。由于某些原因,当它启动时,会播放正确的动画,但当它更改时,动画不会更改。代码正在
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”;
}
}