Показать сообщение отдельно
Старый 08.08.2011, 14:22   #6
Warlock_29A
AnyKey`щик
 
Регистрация: 24.07.2011
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Подскажите как правильно сделать ...

Сообщение от 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(_rayout _hitMathf.Infinity100))
        {
           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.positiontransform.position) * Time.deltaTime _speed);
  }
  if(
transform.position == _waypoint.transform.position)
  {
      
_go=false;
      
animation.Stop();
      
Destroy(_waypoint);
   }

В общих чертах так.Это не рабочий скрипт,это логика.
Спасибо за пример. Перемещение сделал. Но вот c визуализацией вайпоинта вопрос остался. Если его делать в виде меша, то все просто. А вот как быть с 2д изображением, да еще анимированным.

Пробовал взять plane, натянул на него текстуру, анимировал ее. Но когда ее ложу по координатам из hit она естественно частично получается в террайне из за того что он не ровный.

Одна из идей думал перевести координаты из hit в координаты террайна и попытаться наложить сверху текстуру. Видел пример с метеоритами которые деформируют террайн.
(Offline)
 
Ответить с цитированием