|
Название: Проблема с столкновением Отправлено: Bovalex от Октябрь 05, 2013, 14:49:37 sh:hi Написал для гг простенький код:
(JavaScript) Код: function OnTriggerStay(other : Collider) { if(other.gameObject.tag == "Enemie") { health-=1; } } Он должен сделать так, что когда враг прикосаеться ко мне, то у меня должны отниматься жизни. Но почему-то он не работает когда я стою на месте, а если немного подвигаюсь, то начинает работать. Я так полагаю, это изза того, что по идее гг сталкиваеться с врагом а не наоборот Перепробовал некоторые варианты: 1)Вычитывал дистанцию от игрока до врага, если меньше 2, то health-=1, но у меня много врагов, и для каждого создавать переменную ужасно(ну может можно как нибудь так? var enemie : GameObject[], но я не смог sm_sarcastic) 2)Пробовал переписывать первый код во врага, и обращаться к переменной health в скрипт игрока, но не получилось :( Есть ли ещё какие нибудь варианты?Ну или научите использовать эти. Добавлено: Октябрь 09, 2013, 16:09:38 Похоже мне никто не поможет sm_sad Название: Re: Проблема с столкновением Отправлено: Alcatraz от Октябрь 10, 2013, 20:50:21 Возможно ошибки с обращением к скрипту. Для обращения - дистанция, триггер, или функция OnCollisionEnter.
Если скрипты на одном языке, то можно так: var script : Class; Далее обращение script.HP -=1; итд. Название: Re: Проблема с столкновением Отправлено: Bovalex от Октябрь 10, 2013, 21:19:57 Да, на одном, попробуем...
Название: Re: Проблема с столкновением Отправлено: infernal от Октябрь 25, 2013, 20:52:51 Код: if(target != null){ Это можно ставить во врага(написан на C# но я думаю разницы нет), + проверка дистанции, в target присваивай GameObject который имеет флаг "Enemy" или ближайшего подошедшего с этим флагом, аналогично переделать и можно ставить в игрокаVector3 dir = (target.transform.position - transform.position).normalized; float direction = Vector3.Dot (dir,transform.forward); if(direction>=0){hp--;} P.S. Не люблю я триггеры и коллизии, мне кажется они жрут много ресурсов, да и геморроя с ними будь здоров |