对状态机设置自定义脚本StateMachineBehaviour
这种脚本能够实现什么
优点:
通过Animator的状态机就可以实现 敌人AI、NPC AI,
可以在对应状态机 的动画进行 播放 的时候,生成 特效、音效,以及特定的物品,例如:当 状态机动画为喝水的动作,调用这个脚本里面的函数使得角色手中拿起水杯
缺点:
Transform和GameObject变量 只能放入预制体.prefab文件。
transform = Transform.Find("Cube");
gameObject = GameObject.Find("Cube");//只能通过GameObject.Find("Cube")来初始化变量
Transform.Find方法来初始化变量。
游戏开始后,显示Test_AnimationBehaviour.cs的挂载物体为(Clone),在Hierarchy视图中并不显示。
Start函数无效,OnStateEnter函数代替了Start函数。
在Animator视图下,选中状态机,在Inspecotr视图下,点击Add Behaviour按钮,添加行为。
Test_AnimationBehaviour.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 状态机行为,动画行为
/// </summary>
public class Test_AnimationBehaviour : StateMachineBehaviour {
public Transform transform;//只能放入预制体.prefab文件
public GameObject gameObject;//只能放入预制体.prefab文件
private void Awake()
{
gameObject = GameObject.Find("Cube");//只能通过GameObject.Find("Cube")来初始化变量