Задать вопрос
motkot
@motkot
Программирование C#.

Нужно ли как-то исправлять такие перегрузки?

Здраствуйте! У меня есть статический класс с методами-расширениями. И там есть метод Move.

Первый
public static void Move(this Transform transform, Vector3 target, float time)
        {
            if (time < 0) Debug.LogError("Time can't be negative");

            var start = transform.position;
            var deltaTime = 0f;

            var thread = _updateThreads.CreateThread();

            Observable.EveryUpdate().Subscribe(action =>
            {
                if (deltaTime >= 1)
                {
                    transform.position = target;

                    _updateThreads.ClearThread(thread);
                }

                transform.position = Vector3.Lerp(start, target, deltaTime);

                deltaTime += Time.deltaTime / time;

            }).AddTo(thread);
        }


Тут пока все нормально, но потом мне нужно было еще движение с помощью AnimationCurve и тогда я создал перегрузку.

Второй
public static void Move(this Transform transform, Vector3 target, float time, AnimationCurve curve)
        {
            if (time < 0) Debug.LogError("Time can't be negative");
            if (curve == null) Debug.LogError("Curve is null");

            var start = transform.position;
            var deltaTime = 0f;

            var thread = _updateThreads.CreateThread();

            Observable.EveryUpdate().Subscribe(action =>
            {
                if (deltaTime >= 1)
                {
                    transform.position = target;

                    _updateThreads.ClearThread(thread);
                }

                transform.position = Vector3.Lerp(start, target, curve.Evaluate(deltaTime));

                deltaTime += Time.deltaTime / time;

            }).AddTo(thread);
        }


Если посмотреть, то почти ничего не отличается, только новый параметр, проверка и вместо deltaTime написано curve.Evaluate(delta)

Нужно ли от этого избавлятся и как-то пытатся делать короче?
  • Вопрос задан
  • 160 просмотров
Подписаться 2 Комментировать
Подписчики вопроса 2 К ответам на вопрос (0)