Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

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

Здравствуйте.

Хочу сделать элемент RTS игры перемещение. Т.е. кликаем мышью по terrain и проигралась анимация как например в варкрафте3

http://www.youtube.com/watch?v=4rJwPAEKk_M

Как бы вы делали такое в юнити? Мне достаточно просто теоретической выкладки

Так же интересен еще вопрос. Например возьмем тот же варкрафт3, там был такой персонаж как таурен. У него был скилл бить в землю и вызывать ее деформацию, землетрясение. Интересно так же услышать как более правильно сделать такой эффект7

Решение в лоб это алгоритмом воспроизводить деформацию самого террейна через GetHeights и SetHeights, но правильно ли это в плане производительности? Мб. такого эффекта можно добиться какой нибудь анимированной текстурой плюс эффекты.

Извиняюьс за такие дилетанские вопросы
(Offline)
 
Ответить с цитированием
Старый 24.07.2011, 16:31   #2
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Подскажите как правильно сделать ...

тауэр = tower = башня
таурен = tauren = то что ты должен был сказать
(Offline)
 
Ответить с цитированием
Старый 24.07.2011, 16:50   #3
Warlock_29A
AnyKey`щик
 
Регистрация: 24.07.2011
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Подскажите как правильно сделать ...

Сообщение от NitE Посмотреть сообщение
тауэр = tower = башня
таурен = tauren = то что ты должен был сказать
Поправил
(Offline)
 
Ответить с цитированием
Старый 24.07.2011, 17:31   #4
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Подскажите как правильно сделать ...

У него был скилл бить в землю и вызывать ее деформацию, землетрясение. Интересно так же услышать как более правильно сделать такой эффект7
3д модель
(Offline)
 
Ответить с цитированием
Старый 25.07.2011, 22:30   #5
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: Подскажите как правильно сделать ...

Перемещение
На террайн вешаем тег "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);
   }

В общих чертах так.Это не рабочий скрипт,это логика.
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.

Последний раз редактировалось Lestar, 26.07.2011 в 00:42.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Warlock_29A (08.08.2011)
Старый 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)
 
Ответить с цитированием
Старый 08.08.2011, 16:25   #7
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: Подскажите как правильно сделать ...

Проверять колизию плайника с террайном и выдвигать плайник из террайна.Или инстансить изначально с дельтой по Y.
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
(Offline)
 
Ответить с цитированием
Старый 27.08.2011, 15:07   #8
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Подскажите как правильно сделать ...

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

P.S.
Деревянную лопатку мне!
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 18:48.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com