Страница 4 из 5

Re: Танковая аркада

СообщениеДобавлено: 18 авг 2011, 12:01
IDoNotExist
Zanilokon писал(а):Я хотел просто звук сделать когда башня поворачивается,но не получилось т.к я не знаю как отлавливать угол поворота башни.
На офф форуме видел что там как то сделали пр помощи Райкаст,но скрипт так и не выложили

Даже не представляю кому в голову взбредет отлавливать ВРАЩЕНИЕ через рейкаст это какоето изВРАЩЕНИЕ, а угол поворота башни вообщето легко отлавливается через её transform, можно даже не ковыряться в скрипте который у вас отвечает за поворот башни, а написать свой который будет отлавливать его отдельно.

Re: Танковая аркада

СообщениеДобавлено: 18 авг 2011, 15:13
Zanilokon
Тут на досуге думал как сделать ЗОНЫ(ну типо если песок то пыль из под катков/гусениц,если травяная поверхность то маленькие ошмётки из под катков/гусениц)
И тут до меня дошло что можно сделать так:
1.Создаём 2 террайна,на одном ставим текстуру песка,а на другой текстуру травы.
2.Делаем выпуклости на 2 террайнах в разных местах.(террайн с травой опускаем ниже что бы один террайн не висел на другом)
Примерно должно получится так:
http://s008.radikal.ru/i305/1108/8f/56f58cd515cf.jpg
3.А делее идут два скрипта:которые мы вешаем на террайн.Смотрите пункт номер 4)
Скрипт номер 1
Синтаксис:
Используется javascript
var smokeL : GameObject;
var smokeR : GameObject;
function OnCollisionEnter(collision : Collision) {
 if (collision.relativeVelocity.magnitude > 2)
 smokeL.particleEmitter.emit = true;smokeR.particleEmitter.emit = true;
 }
 

Скрипт номер 2
Синтаксис:
Используется javascript
var smokeL : GameObject;
var smokeR : GameObject;
function OnCollisionEnter(collision : Collision) {
 if (collision.relativeVelocity.magnitude > 2)
 smokeL.particleEmitter.emit = false;smokeR.particleEmitter.emit = false;
 }

4.На террайн с песком вешаем скрипт номер 1,а на террайн с травой вешаем скрипт номер 2
P.S скрипты писал очень быстро ибо не было времени,ещё наверно можно было бы сделать что бы при коллизии с опред.текстурой опр.эфекты вурыбали,а опр.врубались,НО увы я не знаю как :-q

Re: Танковая аркада

СообщениеДобавлено: 18 авг 2011, 19:36
artk
Оо, месье знает толк в извращениях. 8() Товарищ, бросайте писать на (js) пишите на brainfuck-е.

Re: Танковая аркада

СообщениеДобавлено: 18 авг 2011, 22:47
Zanilokon
Шутку оценил [-x

Re: Танковая аркада

СообщениеДобавлено: 19 авг 2011, 05:36
Order
+1 извращенее не придумать...

Самый элементарный вариант сделать невидимые колайдеры триггеры...

Лучший вариант сделать карту проходимости. карту разбить на вершины(точки) в каждой точке будет храниться информация о поверхности, ее степень проходимости, тип грунта, текстура ошметков если хотите.

Re: Танковая аркада

СообщениеДобавлено: 19 авг 2011, 10:30
Zanilokon
Ну я ж написал что скрипты писал очень быстро ибо не было времени,и вообще я просто мысль свою выложил :-B

Re: Танковая аркада

СообщениеДобавлено: 19 авг 2011, 10:51
Zanilokon
Лучший вариант сделать карту проходимости. карту разбить на вершины(точки) в каждой точке будет храниться информация о поверхности, ее степень проходимости, тип грунта, текстура ошметков если хотите.

Можно поподробней

Re: Танковая аркада

СообщениеДобавлено: 19 авг 2011, 10:53
[LUkARD]
Zanilokon
посмотри в ютубе урок про дверь

Re: Танковая аркада

СообщениеДобавлено: 19 авг 2011, 13:29
Order
Я не знаю что ты делаешь.. может карта тебе и не нужна..

поле к примеру квадратное , разбиваешь на квадраты заданного размера, получаешь двумерный массив точек.
После создаешь экземпляры класса "Точка" и вводишь туда эти полученные координаты. Массив из этих точек будет иметь [х,y] координаты в массиве по сути это реальные координаты только в int формате. Далее заполняешь Точку данными о проходимости.

Скажем объект танк имеет свои координаты в float формате, округляешь до int и находишь точку ближе к которой он находится. И получаешь "точку" с нее берешь нужные данные и применяешь на танк.

Еще лучше вариант работать с терайном :), не знаю как будет производительнее. Например чтобы точки читали текстуру под собой на терайне и высоты вершин.

Re: Танковая аркада

СообщениеДобавлено: 19 авг 2011, 14:00
artk
Да уже прочитайте про как устроен террайн. Обратите внимание, у террайна есть карта высот, карта текстур(!), лайтмапы и много другое. Для проходимости можно использовать тоже карту и раскрашивать прямо в [unity 3D]. Работа с изображением в хелпе подробно описано.

Re: Танковая аркада

СообщениеДобавлено: 19 авг 2011, 14:04
Zanilokon
Order писал(а):Я не знаю что ты делаешь.. может карта тебе и не нужна..

поле к примеру квадратное , разбиваешь на квадраты заданного размера, получаешь двумерный массив точек.
После создаешь экземпляры класса "Точка" и вводишь туда эти полученные координаты. Массив из этих точек будет иметь [х,y] координаты в массиве по сути это реальные координаты только в int формате. Далее заполняешь Точку данными о проходимости.

Скажем объект танк имеет свои координаты в float формате, округляешь до int и находишь точку ближе к которой он находится. И получаешь "точку" с нее берешь нужные данные и применяешь на танк.

Еще лучше вариант работать с терайном :), не знаю как будет производительнее. Например чтобы точки читали текстуру под собой на терайне и высоты вершин.

Вот мой вариант для меня лучший(я так думаю),Но этими скриптами пользоваться не буду ибо они глупые и писались на быструю руку
Нужно просто модифицировать скрипты(глобал переменные,и что бы эффекты играли только когда танк на земле).
P/S скажу ещё раз что это только идея(ну пост со скриптами).Осуществить её можно,но опять таки с нормальными скриптами(ну модифицировать их)

Re: Танковая аркада

СообщениеДобавлено: 21 авг 2011, 22:00
Zanilokon
Как нужно переделать мисл лаунчер (скрипт) что бы при выстреле он посылал из сферы в сторону танка куб?
Синтаксис:
Используется javascript
var projectile : Rigidbody;
var speed = 20;
var gun:Transform;
function Update()
{
 if( Input.GetButtonDown( "Fire1" ) )
 {
  var instantiatedProjectile : Rigidbody =
  Instantiate( projectile, transform.position, transform.rotation );
  instantiatedProjectile.GetComponent(Projectile).vel = transform.TransformDirection( Vector3( 0, 0, speed ) );
  instantiatedProjectile.velocity = transform.TransformDirection( Vector3( 0, 0, speed ) );
  Physics.IgnoreCollision( instantiatedProjectile.collider, gun );
 }
}
 

Re: Танковая аркада

СообщениеДобавлено: 22 авг 2011, 07:14
Order
Чтобы именно летел с самонаведением ?

Сделай Vector.Lerp (вектор_начала_движения , вектор_цели, прогресс_времени_с_учетом_расстояния_скорости) полетит от ствола к цели

Re: Танковая аркада

СообщениеДобавлено: 22 авг 2011, 09:21
Zanilokon
Мне нужно что бы при выстреле из сферы вылетал допустим куб,в в противоположную сторону снаряду
P/S другого способа организовать отдачу я не придумал ~x(
[curved_hands]

Re: Танковая аркада

СообщениеДобавлено: 22 авг 2011, 09:45
Zanilokon
Столкнулся с такой проблемой: Начал делать интерфэйс,больше половины сделал,и когда сбилдил и запустил то то весь гуи интерфейс ушёл выше на 5-7 см(одинаково при разных разрешениях)