GetAnimatorTransitionInfo() публичный Метод

public GetAnimatorTransitionInfo ( int layerIndex ) : AnimatorTransitionInfo
layerIndex int
Результат AnimatorTransitionInfo
Пример #1
0
        public override void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
        {
            var normTime = animator.GetAnimatorTransitionInfo(layerIndex).normalizedTime;
            var go = animator.gameObject;
            if (normTime > 0 && canSetVolume /*&& normTime < 1*/)
            {
                int count = Parameters.ParameterList.Count;
                if (!canSetVolume)
                {
                    
                }
                canSetVolume = true;

                for (int i = 0; i < count; i++)
                {
                    var elem = Parameters.ParameterList[i];
                    //if (elem.StartVolume != elem.Target)
                    {
                        float lerp = Mathf.Lerp(elem.StartVolume, elem.Target, normTime);
                        //Debug.Log(name + " " + lerp + " " + elem.StartVolume + " " + elem.Target);
                        InAudio.SetVolumeForNode(go, elem.Node, lerp);
                    }
                }
            }
            //Debug.Log(animator.GetAnimatorTransitionInfo(layerIndex).normalizedTime);
            
        }
    // Updates the progress counter of this animation state.
    void UpdateStateProgress (Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
        AnimatorTransitionInfo info = animator.GetAnimatorTransitionInfo (layerIndex);

        if (animator.GetNextAnimatorStateInfo(layerIndex).GetHashCode() == stateInfo.GetHashCode()) { //Entering the state
            m_progress = info.normalizedTime; // Set progress of the animation to the time taken so far.
        } else if(animator.GetCurrentAnimatorStateInfo(layerIndex).GetHashCode() == stateInfo.GetHashCode()){ //Exiting the state
            m_progress = (1 - info.normalizedTime); // Set the final progress of the animation.
        }

    }
Пример #3
0
	void UpdateStatePower(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){
		AnimatorTransitionInfo info = animator.GetAnimatorTransitionInfo (layerIndex);

		if (animator.GetNextAnimatorStateInfo(layerIndex).GetHashCode() == stateInfo.GetHashCode()) { //Entering the state
			_power = info.normalizedTime;
		}else if(animator.GetCurrentAnimatorStateInfo(layerIndex).GetHashCode() == stateInfo.GetHashCode()){ //Exiting the state
			_power = (1-info.normalizedTime);
		}

	}
Пример #4
0
	 // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
	//override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
	//
	//}

	// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
	override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
		AnimatorTransitionInfo info = animator.GetAnimatorTransitionInfo (layerIndex);
		if (animator.GetNextAnimatorStateInfo(layerIndex).GetHashCode() == stateInfo.GetHashCode()) { //Entering the state
			_power = info.normalizedTime;
		}else if(animator.GetCurrentAnimatorStateInfo(layerIndex).GetHashCode() == stateInfo.GetHashCode()){ //Exiting the state
			_power = (1-info.normalizedTime);
		}
		if (_power > 0.98f) {
			animator.SetBool ("Holstered", true);
			animator.SetBool ("Holster", false);
		}
	}
Пример #5
0
    // OnStateEnter is called before OnStateEnter is called on any state inside this state machine
    public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        Debug.Log(1 + "-" + stateInfo.fullPathHash + "-" + Animator.StringToHash("Base.Idle.idle1")+"-"+ stateInfo.length + "-" + stateInfo.normalizedTime + "-" + (stateInfo.normalizedTime - prev));
        prev = stateInfo.normalizedTime;

        //  animationManager.initState(animator, stateInfo);
        AnimationEvent ae = new AnimationEvent();
        ae.functionName = "animationEvent";

        AnimatorTransitionInfo ati = animator.GetAnimatorTransitionInfo(layerIndex);

        AnimatorClipInfo aci = animator.GetCurrentAnimatorClipInfo(layerIndex)[0];
        aci.clip.AddEvent(ae);
        Debug.Log( "进入:"+ aci.clip.name +"-"+ stateInfo.fullPathHash + "-" + stateInfo.length + "-" + stateInfo.normalizedTime + "-" + (stateInfo.normalizedTime - prev));
        //animator.SetInteger("idle",Random.Range(1, 3));
        //AnimationAction animationAction = AnimationManager.getAnimationAction(animator);
    }
Пример #6
0
    // OnStateUpdate is called before OnStateUpdate is called on any state inside this state machine
    public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        Debug.Break();
        AnimatorTransitionInfo ati = animator.GetAnimatorTransitionInfo(layerIndex);

        AnimatorClipInfo []acis = animator.GetCurrentAnimatorClipInfo(layerIndex);
        string acit = "";
        foreach (AnimatorClipInfo aci in acis){
            acit += "["+aci.weight + ":" + aci.clip.name+"],";
        }
        //Debug.Log(2 + "-[" + ati.normalizedTime + "]-["+animator.GetCurrentAnimatorClipInfo(layerIndex)[0].clip.name+ "]-["+stateInfo.normalizedTime+"]-"+ (stateInfo.normalizedTime-prev));
        prev = stateInfo.normalizedTime;
        Debug.Log("update:" + stateInfo.fullPathHash+"-"+acit+stateInfo.normalizedTime);
        if (stateInfo.normalizedTime>0.8f)
        {
           // Debug.Log(stateInfo.fullPathHash);
            //animator.SetInteger("Attack", 0);
           //Debug.Break();
        }
    }
Пример #7
0
 void Start()
 {
     controller = GetComponent<CharacterController>();
     cam = Camera.main;
     anim = GetComponentInChildren<Animator>();
     armsTransitionInfo = anim.GetAnimatorTransitionInfo(1);
     EquipGun(0);
 }
Пример #8
0
		public void CheckForAnimatorStateChanges (Animator animator) {
			for (int layer = 0; layer < LayerCount; layer++) {
				LayerStatuses [layer].State.Current = animator.GetCurrentAnimatorStateInfo (layer).nameHash;
				if (animator.IsInTransition (layer)) {
					LayerStatuses [layer].Transition.Current = animator.GetAnimatorTransitionInfo (layer).nameHash;
				} else {
					LayerStatuses [layer].Transition.Current = 0;
				}
			}
			if (StateHandlers != null && StateHandlers.Count > 0) {
                var enumerator = StateHandlers.GetEnumerator();
                try {
                    while (enumerator.MoveNext()) {

                        var pair = enumerator.Current;
                        var handler = pair.Value;
                        handler.Perform (LayerStatuses, StateInfos);
                    }
                }
                finally {
                    enumerator.Dispose();
                }

			}
			if (TransitionHandlers != null && TransitionHandlers.Count > 0) {
                var enumerator = TransitionHandlers.GetEnumerator();
                try {
                    while (enumerator.MoveNext()) {

                        var pair = enumerator.Current;
                        var handler = pair.Value;
                        handler.Perform (LayerStatuses, TransitionInfos);
                    }
                }
                finally {
                    enumerator.Dispose();
                }
			}
		}