Не работает transform.Translate через префаб

При загрузке сцены у меня создаётся объект игрока по заранее заготовленному префабу.

Я хочу реализовать перемещение. Первый вариант - я сделал внутри метода FixedUpdate, где отслеживается нажатие клавиши на клавиатуре. - все работает отлично. Второй вариант - добавил Button и внутри того же скрипта написал функцию Move, которая должна вызываться по нажатию на Button и перемещать персонажа на несколько координат.

Проблема в том, что внутри FixedUpdate - идёт работа с созданным по префабу объектом игрока, в то время, как моя функция Move работает именно с префабом, а не созданным объектом.

Вот два варианта перемещения:

Первый (работающий)

private void FixedUpdate () {

if (Input.GetKey(KeyCode.W))
 { 
transform.Translate(0, speed, 0);
Debug.Log(transform.position.y); 
} 
}

Второй (неработающий):

public void Move () { 
transform.Translate(0, speed, 0);
Debug.Log(name + transform.position.y); 
}

Почему Debug.Log(transform.position.x) в FixedUpdate выводит координаты объекта созданного по префабу, а вызываемая функция public void, в которой находится Debug.Log(transform.position.y) - выводит координаты, указанные в префабе?


Ответы (0 шт):