Не работает 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) - выводит координаты, указанные в префабе?