Помогите сделать стреляющего врага
|
|
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)
|
|
| |
|
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 ( ) Дополнение к ссылке выше. в мануале все подробно расписано Нужно было дать ссылку на перевод статьи. Хотя возможно автор темы сам догадался переключить на русский, но возможно он просто открыл, увидел, что документация на английском и закрыл. Но скорее всего, он уже много работает с документацией раз в первом сообщении такой красивый кадр из игры и сам уже всё понял. Короче, не обращайте внимание на моё сообщение
P.S. Я думал, что линейная алгебра (и её матрицы) актуальны только для OpenGL и DirectX, и что для движков она неактуальна. Теперь вижу, что это универсальная штука, судя по статье из хабра, что выше приводили.
|
|
| |