Unity3D 动画状态简单控制核心代码

状态机是这样的

Unity3D 动画状态简单控制核心代码

包含静止、跑、攻击、死亡四个动画

下面是核心代码(PS:代码高亮插件出问题了,将就看一下吧。。)

AnimatorStateInfo stateInfo = m_ani.GetCurrentAnimatorStateInfo();

        if (stateInfo.fullPathHash == Animator.StringToHash("Base Layer.idle") && !m_ani.IsInTransition())
{
m_ani.SetBool("idle", false); m_timer -= Time.deltaTime;
if (m_timer > )
return; if (Vector3.Distance(m_transform.position, m_player.m_transform.position) < 1.5f)
{
m_ani.SetBool("attack", true);
}
else
{
m_timer = ;
m_agent.SetDestination(m_player.m_transform.position);
m_ani.SetBool("run", true);
}
} if (stateInfo.fullPathHash == Animator.StringToHash("Base Layer.run") && !m_ani.IsInTransition())
{
m_ani.SetBool("run", false); m_timer -= Time.deltaTime;
if (m_timer < )
{
m_agent.SetDestination(m_player.m_transform.position); m_timer = ;
} if (Vector3.Distance(m_transform.position, m_player.m_transform.position) <= 1.5f)
{
m_agent.Stop();
m_ani.SetBool("attack", true);
}
} if (stateInfo.fullPathHash == Animator.StringToHash("Base Layer.attack") && !m_ani.IsInTransition())
{
RotateTo();
m_ani.SetBool("attack", false); if (stateInfo.normalizedTime >= 1.0f)
{
m_ani.SetBool("idle", true); m_timer = ;
}
}
上一篇:NOIP 2015运输计划


下一篇:rapidjson使用总结