Exemple #1
0
    private IEnumerator AnimateCcSettingsTransition(CharacterControllerSettings targetCcSettings, float duration)
    {
        float          t = 0;
        AnimationCurve easeInOutCurve = AnimationCurve.EaseInOut(0, 0, 1, 1);
        float          startHeight    = controller.height;
        Vector3        startCenter    = controller.center;

        while (t < 1)
        {
            controller.height = Mathf.Lerp(startHeight, targetCcSettings.height, easeInOutCurve.Evaluate(t));
            controller.center = Vector3.Lerp(startCenter, targetCcSettings.center, easeInOutCurve.Evaluate(t));

            t += Time.deltaTime / duration;
            yield return(null);
        }

        controller.height = targetCcSettings.height;
        controller.center = targetCcSettings.center;
    }
 public CharacterController(Rigidbody rb, CharacterControllerSettings settings)
 {
     _rb       = rb;
     _settings = settings;
 }