Game Maker - создание игр | HellRoom Games

Дополнительно: => Вопросы - Ответы => Тема начата: Bovalex от Октябрь 05, 2013, 14:49:37



Название: Проблема с столкновением
Отправлено: 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){
Vector3 dir = (target.transform.position - transform.position).normalized;

float direction = Vector3.Dot (dir,transform.forward);
if(direction>=0){hp--;}
Это можно ставить во врага(написан на C# но я думаю разницы нет), + проверка дистанции, в target присваивай GameObject который имеет флаг "Enemy" или ближайшего подошедшего с этим флагом, аналогично переделать и можно ставить в игрока

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