Ссылка на дочерний GameObject перерывы addForce - PullRequest
0 голосов
/ 18 июня 2019

У меня есть 4 игровых объекта (я, скорее всего, буду делать префабы). Все 4 объекта находятся внутри родительского объекта, к которому я прикрепил скрипт, чтобы определить объект, который будет контролироваться игроком в данный момент времени.

Я получаю ссылку на каждый игровой объект следующим образом:

private void getPlayers()
{
    //Get player Game Objects and place in this array
    players = new GameObject[4];

    for (int i = 0; i < players.Length; i++)
        players[i] = transform.GetChild(i).gameObject;
}

Это успешно получает все ссылки и дает мне возможность вносить изменения непосредственно в каждый игровой объект, например:

getObjects();
currentObject = object[2];
rb = currentObject.GetComponent<Rigidbody>();

Я хочу добавить некоторую силу к currentObject, но это не так, как ожидалось. Он стреляет в объект в любом направлении, в котором движется игрок, в позе, чтобы катиться в этом направлении. Вот как я добавляю силу:

float x = Input.GetAxis("Horizontal"),
          y = Input.GetAxis("Vertical");

Vector3 movement = new Vector3(x, 0.0f, y);
rb.AddForce(movement * speed);

Я использовал этот метод, прежде чем добавить силу, и он работает безупречно. Но добавление этой строки ломает все:

players[i] = transform.GetChild(i).gameObject;

Кроме того, я должен отметить, что я начинающий разработчик Unity.

Обновление: Эта проблема не имеет ничего общего со ссылкой на дочерний объект. Проблема была связана с моей ошибкой изменения значения Time.fixedDeltaTime. Не обновляйте это значение в своем проекте, так как оно может нарушить физические вычисления во время выполнения.

...