Суббота, 20 Апреля 2024, 00:16

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Помогите сделать стреляющего врага
Помогите сделать стреляющего врага
OneKeyДата: Суббота, 25 Июля 2015, 11:34 | Сообщение # 1
участник
Сейчас нет на сайте
Всем доброго времени суток, помоги пожалуйста сделать, что бы враг стрелял по игроку. У меня есть самолет который пролетает над игроком, и нужно, что бы на подлете к игроку он делал по нему пару выстрелов и рандомно попадал по нему.



http://www.falcogames.com/SnowCrushSetup.exe


Сообщение отредактировал OneKey - Суббота, 25 Июля 2015, 11:34
pixeyeДата: Суббота, 25 Июля 2015, 11:36 | Сообщение # 2
Red Winter Software
Сейчас нет на сайте
Цитата OneKey ()
Всем доброго времени суток, помоги пожалуйста сделать, что бы враг стрелял по игроку. У меня есть самолет который пролетает над игроком, и нужно, что бы на подлете к игроку он делал по нему пару выстрелов и рандомно попадал по нему.


Линейная алгебра


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю

berilДата: Суббота, 25 Июля 2015, 12:01 | Сообщение # 3
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Дополнение к ссылке выше. в мануале все подробно расписано



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
OneKeyДата: Суббота, 25 Июля 2015, 15:45 | Сообщение # 4
участник
Сейчас нет на сайте
Спасибо гляну на досуге, мне бы пример кода. Я понимаю прнцып, что можно сделать так: сделать переменную с целью (игроком), определить дистанцию до игрока и при помощи условия сделать что мол когда дистанция до игрока 10 метров начать стрелять.

Добавлено (25 июля 2015, 15:45)
---------------------------------------------
Подскажите хоть как позицию игрока определить, я не пойму как сделать с этими векторами wacko wacko wacko



http://www.falcogames.com/SnowCrushSetup.exe
seamanДата: Суббота, 25 Июля 2015, 20:28 | Сообщение # 5
старожил
Сейчас нет на сайте
Векторная алгебра:
http://mathserfer.com/theory/pyartli1/node1.html
OneKeyДата: Суббота, 25 Июля 2015, 20:33 | Сообщение # 6
участник
Сейчас нет на сайте
seaman, извини мне это не надо, я не знаю как на C# это написать


http://www.falcogames.com/SnowCrushSetup.exe
pixeyeДата: Суббота, 25 Июля 2015, 21:05 | Сообщение # 7
Red Winter Software
Сейчас нет на сайте
Цитата OneKey ()
seaman, извини мне это не надо, я не знаю как на C# это написать


Ну так зачем тебе вообще это надо если ты основ не знаешь. Иди туторы гоняй и учись. Программирование - это любознательность, пытливость ума, постоянный поиск. Ты не уважаешь ни себя, ни остальных говоря такое. Помочь тебе бы рады, но за тебя никто писать не будет и учиться тоже.

Цитата OneKey ()
Подскажите хоть как позицию игрока определить, я не пойму как сделать с этими векторами


transform.position - это позиция объекта. Хранится в vector3. Игрок там или кексик - у всех игровых объектов на сцене в юнити есть компонент transform отвечающий за хранение позиции, масштабов и угла поворота.


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю

OneKeyДата: Суббота, 25 Июля 2015, 21:23 | Сообщение # 8
участник
Сейчас нет на сайте
pixeye, я вскрипте создал функцию стрельбы, создал переменную для объекта который будет выступать целью. В абдейте прописал так
Код

if(target.transform.position.x <= 50){
        StykaFire();
}


я так понимаю написаное выше: когда растояние между врагом и целью меньше либо равно 50 начать стрелять. Но почему то моя писанина не работает (((



http://www.falcogames.com/SnowCrushSetup.exe
seamanДата: Суббота, 25 Июля 2015, 22:31 | Сообщение # 9
старожил
Сейчас нет на сайте
Цитата
target.transform.position.x

Это НЕ
Цитата
растояние между врагом и целью

А если
Цитата
мне это не надо

Тогда у Вас всегда будет так:
Цитата
моя писанина не работает
OneKeyДата: Суббота, 25 Июля 2015, 22:46 | Сообщение # 10
участник
Сейчас нет на сайте
seaman, я прочитаю, то что вы скинули. Просто там одна алгебра, а как в юнити реализовать это нет примера.


http://www.falcogames.com/SnowCrushSetup.exe
QuieteroksДата: Суббота, 25 Июля 2015, 22:58 | Сообщение # 11
частый гость
Сейчас нет на сайте
OneKey, алгебра и многое другое нужно сейчас понимать, что бы уметь рассчитать траекторию и прочее.
В данном случае тебе нужно воспользоваться простым алгоритмом, который называется вычитание.
Код
if((target.transform.position.x - player.transform.position.x) <= 50){
         StykaFire();
}


Если вам все равно где вы находитесь, значит вы еще не заблудились.
OneKeyДата: Суббота, 25 Июля 2015, 23:12 | Сообщение # 12
участник
Сейчас нет на сайте
Quieteroks, под player.transform.position.x ты подрозумиваешь позицию врага который будет стрелять по игроку ? просто у меня таргет это и есть игрок.


http://www.falcogames.com/SnowCrushSetup.exe
QuieteroksДата: Суббота, 25 Июля 2015, 23:32 | Сообщение # 13
частый гость
Сейчас нет на сайте
OneKey, ну значит да. Очень просто же, Если нужно расстояние, то разница между координатами.
Но если делать правильно, то нужно строить вектор по координатам X и Y между врагом и игроком, дополнить его высотой Z и рассчитать корректное расстояние между объектами.
Ведь самолеты у тебя не по одной линии летят, да и игрок возможно может передвигаться. А еще высота самолетов и неровности рельефа.

Вот для этого тебе и дали ссылку на векторную алгебру. Но тут уж прости, самому придется разобраться... Подсказку я тебе дал.


Если вам все равно где вы находитесь, значит вы еще не заблудились.
OneKeyДата: Воскресенье, 26 Июля 2015, 00:09 | Сообщение # 14
участник
Сейчас нет на сайте
Quieteroks, у меня все просто сделано самолет уже изначально летит выше рельефа, игрок статичен. Правда смотреться все это будет странно когда я заставлю его стрелять. Я решил просто добавить еще одну переменную для префаба с самолетам и буду вычитать разницу расстоянии между префабом и игроком. Должно сработать.


http://www.falcogames.com/SnowCrushSetup.exe
8Observer8Дата: Вторник, 28 Июля 2015, 14:17 | Сообщение # 15
заслуженный участник
Сейчас нет на сайте
Цитата beril ()
Дополнение к ссылке выше. в мануале все подробно расписано

Нужно было дать ссылку на перевод статьи. Хотя возможно автор темы сам догадался переключить на русский, но возможно он просто открыл, увидел, что документация на английском и закрыл. Но скорее всего, он уже много работает с документацией раз в первом сообщении такой красивый кадр из игры и сам уже всё понял. Короче, не обращайте внимание на моё сообщение smile

P.S. Я думал, что линейная алгебра (и её матрицы) актуальны только для OpenGL и DirectX, и что для движков она неактуальна. Теперь вижу, что это универсальная штука, судя по статье из хабра, что выше приводили.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Помогите сделать стреляющего врага
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг