在sword and shield 动画包里找到impact2,先选中PlayerHandle的ybot,然后点开Animator的Base Layer。
把impact2的动画拖进去,在Any State 拖出箭头指向impact动画,动画改名为hit ,然后在Parameters里添加一个hit的Trigger。
在箭头里添加动画条件hit。
然后我在PlayerHandle里添加一个新的脚本TesterHit来测试被击打动画。
public class TesterHit : MonoBehaviour
{
private Animator anim;
// Start is called before the first frame update
void Start()
{
anim = GetComponentInChildren<Animator>();
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.C))
{
anim.SetTrigger("hit");
}
}
}
这里是获取到模型上的Animator写的anim PlayerHandle属于父级,要取到子级的状态机。
写完之后,运行的时候按下C键就会有被击打的动画。
接下来要解决当运行被击打动画时移动的问题。
在状态机选中hit动画,添加之前写好的FSM信号接入脚本。
创建一个OnHitEnter
然后在ActorController脚本里最下面新建对应的函数
public void OnHitEnter()
{
pi.inputEnabled = false;
}
这样就基本完成被击打动画的执行顺序。
标签:击打,动画,anim,hit,void,黑魂,Animator From: https://www.cnblogs.com/dontpanic1703/p/17567557.html