Задать вопрос
WasTabon
@WasTabon

Невозможно передать аргументы в Initialize класса с MonoBehaviour?

public class Player : MonoBehaviour
{
    public void Initialize(Vector3 spawnPosition, InputManager inputManager)
    {
        _playerMovement = new PlayerMovement(_inputManager, _rigidbody, _wheels);
    }

    private void FixedUpdate()
    {
        _playerMovement.Method();
    }
}


вот кусок из моего кода. Я хочу сделать так, чтобы можно было в Bootstrap создавать игрока и сразу передать ему параметры (Vector3 spawnPosition, InputManager inputManager)

но проблема заключается в том, что сначала надо Instantiate его, а потом уже вызвать Initialize, а за это время успеет вызваться FixedUpdate который будет пытатся достучаться до _playerMovement который null и будут ошибки

Есть 2 варианта
1) Проверить _playerMovement на null в FixedUpdate но от него откажусь так как не хочу лишних проверок в Update
2) Сделать Player без монобеха, но это слишком долго и может есть способы попроще
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@DrRen7
1) private void Awake()
{
Instantiate
}
void Start()
{
Initialize
}
2) сделать из _playerMovement.Method(); корутину с WaitForFixedUpdate()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы