@Zimaell

Как задать координаты движения юниту?

Мне нужно поставить юнита на определенные координаты и передать ему значение куда ему идти
public class Unit : MonoBehaviour{ // прикреплен к префабу
    public Vector3 EndPoint;
    private float speed = 2f;
 
    void Start(){
        //EndPoint= new Vector3(15, 0, 15);
        }
 
    void Update(){
        transform.position = Vector3.MoveTowards(transform.position, EndPoint, speed*Time.deltaTime);
        }
    }
 
public class Spawn : MonoBehaviour{
 
  void Start(){
    SpawnUnit();
    }
 
  void SpawnUnit(){
    Unit Prefab = Resources.Load("Units/unit1", typeof(Unit)) as Unit;
    Instantiate(Prefab, new Vector3(5, 0, 5), Quaternion.identity);
    Prefab.EndPoint = new Vector3(15, 0, 15);
    }
  }

Но он не идет к заданным координатам, он идет в другую сторону на пару клеток.
Если убрать Prefab.EndPoint = new Vector3(15, 0, 15); и раскомментировать EndPoint= new Vector3(15, 0, 15); то идет туда куда нужно.
Но в теории я и так передаю ему координаты Prefab.EndPoint = .... , почему так не работает?
  • Вопрос задан
  • 37 просмотров
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Unit Prefab = Resources.Load - это ссылка на ресурс, в нём по-уму ничего в рантайме менять не нужно.
Instantiate - а вот тут была бы ссылка на объект в сцене, которому и надо задавать параметры. Но вы эту ссылку не сохраняете.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
mpulse Москва
от 80 000 до 140 000 ₽
Stark Games Минск
До 3 500 $
Frostgate studio Новосибирск
от 60 000 до 100 000 ₽
27 сент. 2020, в 20:05
10000 руб./за проект
27 сент. 2020, в 19:56
12000 руб./за проект
27 сент. 2020, в 19:45
1500 руб./за проект