2017-11-04 463 views
0

我有一个2D单屏风格的游戏,我有一个禁用的gameobject。在这之下有几个孩子,这是动画。父对象持有儿童的动画师。当我启用父项时,动画将无法播放。动画师认为它试图处理默认的输入状态,但没有完成。我已经对此进行了一些研究,似乎禁用并启用某些内容不会启动动画制作者。我已经尝试为它写一些代码而没有运气,并且将sprite渲染器设置为false将不起作用,因为只有太多的sprite。这是我的最后一次尝试:任何想法?Unity 2D动画无法播放SetActive后(true)

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 

public class animationState : MonoBehaviour 
{ 
    public Animator anim; 

    private void OnEnable() 
    { 
     if (anim.gameObject.activeSelf) 
     { 
      anim.Play("pinWheelAnimation"); 
     } 
    } 
} 

回答

0

团结不喜欢的工作,你不能设置一个动画父对象会影响动画儿童,你将不得不建立一个为动画每个孩子。如果您想从父对象修改儿童的动画师,可以使用脚本来完成,该脚本搜索所有儿童及其组件并更改其参数。

在此请看:Animator parameters

+0

也许我解释错了。只有具有动画师/动画的父对象本质上是子对象的关键帧。这工作正常。只有当对象设置为活动状态时,动画才能加载。如果我要保持活动状态,它将根据需要播放和切换状态。问题是它在启动时处于非活动状态,并且在激活时,动画从不播放。任何其他想法? –

0

尝试,没有退出的时间和没有设置动画的IdleState为DefaultState并定义一个触发事件去到你的动画状态。然后激活触发器

void Start() 
{ 
} 
+0

我会检查出来,让你知道!谢谢!! –