using UnityEngine; public class StepHandler : MonoBehaviour { public float staticCounter; public Step[] steps; public bool isLeft; private float counter; private Transform leftLeg; private Transform rightLeg; private AnimationHandler animationHandler; private Transform hip; private void Start() { if (staticCounter == 0f) { leftLeg = GetComponentInChildren().transform; rightLeg = GetComponentInChildren().transform; animationHandler = GetComponent(); hip = GetComponentInChildren().transform; } } private void Update() { counter += Time.deltaTime; if (staticCounter != 0f) { if (counter > staticCounter) { Switch(); } } else if (counter > steps[animationHandler.animationState].minTime && (steps[animationHandler.animationState].minAngle == 0f || steps[animationHandler.animationState].minAngle < Vector3.Angle(leftLeg.forward, rightLeg.forward)) && isLeft == hip.InverseTransformPoint(leftLeg.position + leftLeg.forward).z > hip.InverseTransformPoint(rightLeg.position + rightLeg.forward).z) { Switch(); } } private void Switch() { isLeft = !isLeft; counter = 0f; } }