Четверг, 28 Марта 2024, 23:06

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Коллайдер и урон (реализация шипов)
Коллайдер и урон (реализация шипов)
VasaGameDevДата: Воскресенье, 03 Августа 2014, 17:56 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Написал скрипт Hp (жизней). Выкладывать не буду так как он простой. Протестил все работает. Теперь я хочу сделать шипы, от прикосновения их у вас отнимается hp. Ничего подобного я в инете не нашел. Но есть инфа что можно это осуществить с помощью коллайдеров. Из одного урока взял кусочек кода не ничего не сработало. Помогите кодом!

Сообщение отредактировал VasaGameDev - Воскресенье, 03 Августа 2014, 17:59
URGINSANДата: Воскресенье, 03 Августа 2014, 18:18 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
VasaGameDev, тебе нужно сделать триггер на конце шипа, и когда игрок соприкасается с ним, нужно отнимать у него здоровье. Гугли как пользоваться триггерами.

Я на драйве
allodsДата: Воскресенье, 03 Августа 2014, 19:05 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
повесь коллайдер на свой шип, поставь галочку на IsTrigger

На перса повесь ригидбади или на сами шипы, отключи физику IsKinematic

и вот функция

Код
function OnTriggerEnter (other : Collider) {
   тут код который отнимает хп висит на шипах:
                 проверяй если это перс и  иди к его скрипту с хп,

                 или скрипт на персе, то проверяй что столкновение с шипами и отнимай прямо у перса хп
  }
VasaGameDevДата: Воскресенье, 03 Августа 2014, 19:43 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Я пишу на c# это значит просто написать OnTriggerEnter (other : Collider)?
URGINSANДата: Воскресенье, 03 Августа 2014, 20:44 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
Void сначала

Я на драйве
МаоДзедунДата: Воскресенье, 03 Августа 2014, 21:15 | Сообщение # 6
почетный гость
Сейчас нет на сайте
Цитата VasaGameDev ()
Я пишу на c# это значит просто написать OnTriggerEnter (other : Collider)?

void OnTriggerEnter (Collider other)
{

}



Знакомая попросила переустановить Windows, взял дистрибутив Ubuntu
Интеллигенция — самая необразованная часть общества.©Мао Дзэдун
Кто не побывал на Великой китайской стене, тот не может считаться китайцем.©Мао Дзэдун
robertonoДата: Воскресенье, 03 Августа 2014, 22:49 | Сообщение # 7
Чокнутый Кот
Сейчас нет на сайте
VasaGameDev, а документацию не судьба почитать что ли?
set16Дата: Понедельник, 04 Августа 2014, 05:25 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
http://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html

s c r i p t = G ame O b j e c t . F i n d ( " Player " ) . G e t C omp o n e n t < Hpchar> ();
script.hp = script.hp - 1;

Добавлено (04.08.2014, 05:25)
---------------------------------------------
это писать в OnTriggerEnter

тоесть когда игрок касается соллайдера-триггера срабатывает функция OnTriggerEnter и в ней
s c r i p t = G ame O b j e c t . F i n d ( " Player " ) . G e t C omp o n e n t < Hpchar> ();
script.hp = script.hp - 1;
тоесть ищет обект с именем Player в нем находит скрипт Hpchar и пеняет переменную hp вот весь скрипт.


=>The darkness of distant lands [3D]<=
AstralangelДата: Понедельник, 04 Августа 2014, 08:08 | Сообщение # 9
STF Games
Сейчас нет на сайте
Цитата set16 ()
тоесть ищет обект с именем Player в нем находит скрипт Hpchar и пеняет переменную hp вот весь скрипт.

Так то совет не очень. К GetComponent имеет смысл прибегать если 2 скрипта написаны на разных языках (C# - Javascript), в остальных случаях переменные прекрасно тянутся и без этого, а также, практика показала, что при наличии подобного костыля дико жрутся ресурсы, а значит, всегда нужно писать все скрипты на одном языке, тем более, что это вполне реально.


Весь мир театр, все люди в нем актеры и каждый не одну играет роль (с) Шекспир

Сообщение отредактировал Astralangel - Понедельник, 04 Августа 2014, 08:09
set16Дата: Понедельник, 04 Августа 2014, 08:39 | Сообщение # 10
постоянный участник
Сейчас нет на сайте
к js нельзя использовать getcomponent

и интнрнсно какже они тянутся без этой функции

Добавлено (04.08.2014, 08:39)
---------------------------------------------
наверно про статику намикаете. проблем больше


=>The darkness of distant lands [3D]<=
VasaGameDevДата: Понедельник, 04 Августа 2014, 09:33 | Сообщение # 11
почетный гость
Сейчас нет на сайте
Код

Public GameObject Vrag;

Void OnTriggerEnter(Collider Vrag) {

if (vrag.gameobject.name == "Player") {
Hp=Hp-10;
}
}


Как сделать чтобы Vrag был равен Vrag из Void OnTriggerEnter(Collider Vrag), чтобы врага можно было выбрать и поставить в инспекторе
set16Дата: Понедельник, 04 Августа 2014, 09:46 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
не пенял вопроса, какой инспектор
vrag в функции будет равен тому объекту который попадет в колайдер


=>The darkness of distant lands [3D]<=
JonLivingstonДата: Понедельник, 04 Августа 2014, 11:09 | Сообщение # 13
почетный гость
Сейчас нет на сайте
Цитата VasaGameDev ()
Я пишу на c# это значит просто написать OnTriggerEnter (other : Collider)?

facepalm
В таком случае, перед тем, как писать игры, советую изучить сам C#. Люди, я не пойму, куда вы спешите? В данном разделе форума встречал огромную кучу тем и вопросов, никоим образом не связанных с Unity. Большинство из них отпадает, если просто почитать про ООП или C#. За это, кстати, мне и не нравится Unity, ибо на нем можно написать игру, абсолютно не умея программировать (что очень сближает его с конструкторами). Согласен, это имеет смысл в плане скорости разработки, но абсолютно бесполезно в плане приобретения реального опыта. Попробуйте сделать то же самое на NeoAxis Engine каком-нибудь, и очень удивитесь.


"Почему труднее всего на свете заставить птицу поверить в то, что она свободна?" - Ричард Бах
Наша первая игра Dark Forest
Let's play на Dark Forest
AstralangelДата: Понедельник, 04 Августа 2014, 11:18 | Сообщение # 14
STF Games
Сейчас нет на сайте
Цитата set16 ()
наверно про статику намикаете. проблем больше

Для себя интересно просто, каких проблем больше со статикой?
Цитата set16 ()
к js нельзя использовать getcomponent

Я видимо волшебством занимался, когда делал перелинковку скриптов на разных ЯП...
тык


Весь мир театр, все люди в нем актеры и каждый не одну играет роль (с) Шекспир

Сообщение отредактировал Astralangel - Понедельник, 04 Августа 2014, 11:18
JonLivingstonДата: Понедельник, 04 Августа 2014, 11:19 | Сообщение # 15
почетный гость
Сейчас нет на сайте
Цитата set16 ()
к js нельзя использовать getcomponent

Почему нет? В чем тогда смысл давать возможность писать скрипты на двух языках, между которыми нельзя взаимодействовать?

Цитата Astralangel ()
Так то совет не очень. К GetComponent имеет смысл прибегать если 2 скрипта написаны на разных языках (C# - Javascript), в остальных случаях переменные прекрасно тянутся и без этого, а также, практика показала, что при наличии подобного костыля дико жрутся ресурсы, а значит, всегда нужно писать все скрипты на одном языке, тем более, что это вполне реально.

А как, в таком случае, понять, к какому конкретно объекту на сцене я обращаюсь, если скрипт (класс) может относиться к различным объектам? Это не имеет значения, если класс (поле, метод) static, но как быть в других случаях? А GetComponent однозначен, и точно понятно, кого именно ты имеешь ввиду. Хотя, если вы на каждый объект пишете новый скрипт, возможно GetComponent действительно неоправданная функция.


"Почему труднее всего на свете заставить птицу поверить в то, что она свободна?" - Ричард Бах
Наша первая игра Dark Forest
Let's play на Dark Forest
AstralangelДата: Понедельник, 04 Августа 2014, 11:27 | Сообщение # 16
STF Games
Сейчас нет на сайте
Цитата JonLivingston ()
А как, в таком случае, понять, к какому конкретно объекту на сцене я обращаюсь, если скрипт (класс) может относиться к различным объектам? Это не имеет значения, если класс (поле, метод) static, но как быть в других случаях? А GetComponent однозначен, и точно понятно, кого именно ты имеешь ввиду. Хотя, если вы на каждый объект пишете новый скрипт, возможно GetComponent действительно неоправданная функция.

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


Весь мир театр, все люди в нем актеры и каждый не одну играет роль (с) Шекспир
set16Дата: Понедельник, 04 Августа 2014, 12:47 | Сообщение # 17
постоянный участник
Сейчас нет на сайте
Нельзя создавать экземпляр класса,
используя ключевое слово new. Не разрешается использовать не
статические члены этого же класса. Он не поддерживает наследование. Невозможно перегрузить методы.


=>The darkness of distant lands [3D]<=
allodsДата: Понедельник, 04 Августа 2014, 12:51 | Сообщение # 18
почти ветеран
Сейчас нет на сайте
Цитата VasaGameDev ()
if (vrag.gameobject.name == "Player") {
Hp=Hp-10;
}


Вам нужно это

if(vrag.collider.tag=="Player")

vrag.collider.gameObject.GetComponent<"ваш скрипт">().Hp-=10;

на игрока поставить Тэг Player


Сообщение отредактировал allods - Понедельник, 04 Августа 2014, 12:52
JonLivingstonДата: Понедельник, 04 Августа 2014, 13:00 | Сообщение # 19
почетный гость
Сейчас нет на сайте
Цитата VasaGameDev ()
Как сделать чтобы Vrag был равен Vrag из Void OnTriggerEnter(Collider Vrag)

Учим С#


"Почему труднее всего на свете заставить птицу поверить в то, что она свободна?" - Ричард Бах
Наша первая игра Dark Forest
Let's play на Dark Forest


Сообщение отредактировал JonLivingston - Понедельник, 04 Августа 2014, 13:01
set16Дата: Понедельник, 04 Августа 2014, 13:04 | Сообщение # 20
постоянный участник
Сейчас нет на сайте
abrrdada = GetComponent<имя скрипта>
().abrakadabrra;
вот такое в с# работает а в js нет что не удобно крайне

Добавлено (04.08.2014, 13:04)
---------------------------------------------
abrrdada = GetComponent<имя скрипта>
().abrakadabrra;
вот такое в с# работает а в js нет что не удобно крайне


=>The darkness of distant lands [3D]<=
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Коллайдер и урон (реализация шипов)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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