Сообщение от Lestar
Перемещение
На террайн вешаем тег "Floor"
Ray _ray;
RaycastHit _hit;
float _speed=20f;
bool _go=false;
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
_ray=gameObject.camera.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(_ray, out _hit, Mathf.Infinity, 100))
{
if (_hit.collider.tag == "Floor")
{
GameObject _waypoint = new GameObject();
_waypoint.transform.position=_hit.point;
_go=true;
animation.Play();
}
}
}
if(_go)
{
transform.Translate(Vector3.Normalize(_waypoint.transform.position- transform.position) * Time.deltaTime * _speed);
}
if(transform.position == _waypoint.transform.position)
{
_go=false;
animation.Stop();
Destroy(_waypoint);
}
}
В общих чертах так.Это не рабочий скрипт,это логика.
|
Спасибо за пример. Перемещение сделал. Но вот c визуализацией вайпоинта вопрос остался. Если его делать в виде меша, то все просто. А вот как быть с 2д изображением, да еще анимированным.
Пробовал взять plane, натянул на него текстуру, анимировал ее. Но когда ее ложу по координатам из hit она естественно частично получается в террайне из за того что он не ровный.
Одна из идей думал перевести координаты из hit в координаты террайна и попытаться наложить сверху текстуру. Видел пример с метеоритами которые деформируют террайн.