motkot
@motkot
Программирование C#.

Как можно улучшить этот код(ревью)?

Написал такой код для перемещения персонажа когда он вышел за экран как в Doodle jump.

Можно ли как-то его улучшить? И плохо ли что это в Update?

using UnityEngine;

public class Side : MonoBehaviour
{
    [SerializeField] private Transform _oppositePoint; // позиция противоположной стороны
    [SerializeField] private Transform _target; // позиция игрока 

// transform это позиция этой стороны

    [SerializeField] private bool _leftSide;

    private void Awake()
    {
        _leftSide = InitializedSide();
    }

    private void Update()
    {
        if(_leftSide)
        {
            if(transform.position.x > _target.position.x)
            {
                MoveToOppositePoint();
            }
        }
        else
        {
            if (transform.position.x < _target.position.x)
            {
                MoveToOppositePoint();
            }
        }
    }

    private bool InitializedSide() => transform.position.x<_oppositePoint.position.x;

    private void MoveToOppositePoint() => _target.position = new Vector2(_oppositePoint.position.x, _target.position.y);
}


Примерно такой же код для того чтобы когда игрок упал в низ за экран, то игра перезапустилась.

using UnityEngine;
using UnityEngine.SceneManagement;

public class DeadPoint : MonoBehaviour
{
    [SerializeField] private Transform _target;

    private void Update()
    {
        if(_target.position.y <= transform.position.y)
        {
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
        }
    }
}
  • Вопрос задан
  • 216 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы