override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { FootPlacementData lF1 = animator.GetComponents<FootPlacementData>()[0]; FootPlacementData lF2 = animator.GetComponents<FootPlacementData>()[1]; //setting up first foot transition time and extra ray dist check if (lF1 != null) { if(stateInfo.normalizedTime > 0.25f) { lF1.mExtraRayDistanceCheck = mIdleRayCast; } else { lF1.mExtraRayDistanceCheck = 0; } } //setting up second foot transition time and extra ray dist check if (lF2 != null) { if(stateInfo.normalizedTime > 0.25f) { lF2.mExtraRayDistanceCheck = mIdleRayCast; } else { lF2.mExtraRayDistanceCheck = 0; } } }
public override void OnStateUpdate(Animator animator, AnimatorStateInfo animatorStateInfo, int layerIndex) { float lCurrentSpeedFactor = animator.GetFloat("speed"); float lTime = animatorStateInfo.normalizedTime - Mathf.Floor(animatorStateInfo.normalizedTime); float lBlendedTime = 0.5f - 0.25f * lCurrentSpeedFactor; FootPlacementData[] lFeet = animator.GetComponents<FootPlacementData>(); FootPlacementData lFoot; //First foot setup start if(!lFeet[0].IsLeftFoot) { lFoot = lFeet[0]; } else { lFoot = lFeet[1]; } //Setting up transition time lFoot.mTransitionTime = 0.15f - (0.1f * lCurrentSpeedFactor); //Setting up raycast extra ray dist if(lTime < lBlendedTime) { lFoot.mExtraRayDistanceCheck = 0.7f; } else { lFoot.mExtraRayDistanceCheck = -0.2f; } //First foot setup end //Second foot setup start if(lFeet[0].IsLeftFoot) { lFoot = lFeet[0]; } else { lFoot = lFeet[1]; } //Setting up transition time lFoot.mTransitionTime = 0.15f - (0.1f * lCurrentSpeedFactor); //Setting up raycast extra ray dist if(lTime > 0.5 && lTime < 0.5f + lBlendedTime) { lFoot.mExtraRayDistanceCheck = 0.7f; } else { lFoot.mExtraRayDistanceCheck = -0.2f; } //Second foot setup end }