public void Init(FPController fpController, ControllerStateData current)
        {
            this.fpController = fpController;

            this.previous = current;
            this.target   = current;
            this.lerp.SetValueToMin();

            UpdateCurrentState();
        }
    public virtual void GoToState(ControllerStateData stateData)
    {
        states.Traverser.GoToState(stateData);

        headBobData.UpdateStates(states.Traverser.Previous.State, states.Traverser.Target.State);

        if (OnStateChangeStart != null)
        {
            OnStateChangeStart(CurrentState);
        }
    }
        public void GoToState(ControllerStateData newState, float lerpScale)
        {
            lerpScale = Mathf.Clamp01(lerpScale);

            previous = target;
            target   = newState;

            lerp.Value = lerpScale;

            UpdateCurrentState();
            current.State = target.State;

            state = target.State;
        }
Пример #4
0
        private void Awake()
        {
            this.meshRenderer = GetComponent <Renderer>();

            var gazeGO = new GameObject();

            gazeGO.name             = gameObject.name + "Gaze";
            gazeGO.transform.parent = this.transform;

            this.gazeRay               = gazeGO.AddComponent <LineRenderer>();
            this.gazeRay.material      = gazeMaterial;
            this.gazeRay.useWorldSpace = true;
            this.gazeRay.enabled       = false;

            this.controller = InputStateManager.Instance.GetModuleOfType(typeof(ControllerStateData)) as ControllerStateData;
        }
 public static void Lerp(ref ControllerStateData target, ControllerStateData a, ControllerStateData b, float t)
 {
     target.height = Mathf.Lerp(a.height, b.height, t);
     target.radius = Mathf.Lerp(a.radius, b.radius, t);
     target.speed  = Mathf.Lerp(a.speed, b.speed, t);
 }
    public static ControllerStateData Lerp(ControllerStateData a, ControllerStateData b, float t)
    {
        Lerp(ref tempState, a, b, t);

        return(tempState);
    }
 public void GoToState(ControllerStateData newState)
 {
     GoToState(newState, Mathf.InverseLerp(target.Height, newState.Height, Current.Height));
 }
 public void UpdateCurrentState()
 {
     current = ControllerStateData.Lerp(previous, target, lerp.Value);
 }