void Start() { mAnimator = GetComponent <Animator>(); mMotor = GetComponent <CharacterMotor>(); mCharacterProperty = GetComponent <CharacterProperty>(); runSpeed = mCharacterProperty.WalkSpeed; mObservableStateMachineTrigger = mAnimator.GetBehaviour <ObservableStateMachineTrigger>(); mObservableStateMachineTrigger .OnStateEnterAsObservable() .Subscribe(info => { OnEnterState(info.StateInfo); }); mObservableStateMachineTrigger .OnStateExitAsObservable() .Subscribe(info => { OnExitState(info.StateInfo); }); mTargetingController = GetComponent <TargetingController>(); mTargetingController.CurrentTarget = target; }
void Start() { Animator animator = GetComponent <Animator>(); if (animator != null) { trigger = animator.GetBehaviour <ObservableStateMachineTrigger>(); trigger.OnStateEnterAsObservable() //.Where(x => x.StateInfo.IsName("Intro")) .Subscribe(x => { Debug.LogFormat("state name:{0} nameHash:{1} layerIndex:{2}", x.Animator.name, x.StateInfo.shortNameHash, x.LayerIndex); }) .AddTo(this.gameObject); } }
// Use this for initialization void Start() { mAnimator = GetComponent <Animator>(); mCharacterController = GetComponent <CharacterMotor>(); mBehaviourTreeOwner = GetComponent <BehaviourTreeOwner>(); mObservableStateMachineTrigger = mAnimator.GetBehaviour <ObservableStateMachineTrigger>(); mObservableStateMachineTrigger .OnStateExitAsObservable() .Subscribe(info => { OnExitState(info.StateInfo); }); mObservableStateMachineTrigger .OnStateEnterAsObservable() .Subscribe(info => { OnEnterState(info.StateInfo); }); }
// Use this for initialization void Start() { mAnimator = GetComponent <Animator>(); mCharacterController = GetComponent <CharacterMotor>(); mBehaviourTreeOwner = GetComponent <BehaviourTreeOwner>(); mObservableStateMachineTrigger = mAnimator.GetBehaviour <ObservableStateMachineTrigger>(); mObservableStateMachineTrigger .OnStateExitAsObservable() .Subscribe(info => { OnExitState(info.StateInfo); }); mObservableStateMachineTrigger .OnStateEnterAsObservable() .Subscribe(info => { OnEnterState(info.StateInfo); }); mAnimator.SetInteger("Death", Mathf.RoundToInt(UnityEngine.Random.Range(1, 3))); }