Game Maker - создание игр | HellRoom Games
Ноябрь 16, 2025, 03:24:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с столкновением  (Прочитано 3816 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Bovalex
GM Pro user
*

Репутация: 108
Offline Offline

Пол: Мужской
Награды:
500 сообщений!За постоянность! [50 дней на форуме]Настоящий игродел!За участие в Весеннем конкурсе.
API: Unity 3D
Деятельность: Человек - оркестр
Сообщений: 731



« : Октябрь 05, 2013, 14:49:37 »

 Hi! Написал для гг простенький код:
 (JavaScript)
Код:
function OnTriggerStay(other : Collider) {
if(other.gameObject.tag == "Enemie")
{
health-=1;
}
}

Он должен сделать так, что когда враг прикосаеться ко мне, то у меня должны отниматься жизни.
Но почему-то он не работает когда я стою на месте, а если немного подвигаюсь, то начинает работать.
Я так полагаю, это изза того, что по идее гг сталкиваеться с врагом а не наоборот
Перепробовал некоторые варианты:
1)Вычитывал дистанцию от игрока до врага, если меньше 2, то health-=1, но у меня много врагов, и для каждого создавать переменную ужасно(ну может можно как нибудь так? var enemie : GameObject[], но я не смог )
2)Пробовал переписывать первый код во врага, и обращаться к переменной health в скрипт игрока, но не получилось :(
Есть ли ещё какие нибудь варианты?Ну или научите использовать эти.

Добавлено: Октябрь 09, 2013, 16:09:38
Похоже мне никто не поможет
« Последнее редактирование: Октябрь 09, 2013, 16:09:38 от bovalex » Записан

Я ненавижу когда лама по имени Карл бьёт меня 37 раз и ест мои руки.
Falcoware - Download Free Games
Alcatraz
Flight Dream Studio
«Старожил форума»
******

Репутация: 392
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [100 дней на форуме]За лояльность! [+300 репутации]Знаток Unity 3D3 место в конкурсе: Адекватные игры #2 [Стимпанк]2 место за игру: Dead Night (Конкурс Золотые Руки)...
API: Unity 3D
Деятельность: C#, C++, UNITY3D
Сообщений: 3392


http://vk.com/alcatraz_rus


WWW
« Ответ #1 : Октябрь 10, 2013, 20:50:21 »

Возможно ошибки с обращением к скрипту. Для обращения - дистанция, триггер, или функция OnCollisionEnter.

Если скрипты на одном языке, то можно так:

var script : Class;

Далее обращение script.HP -=1; итд.
Записан

Bovalex
GM Pro user
*

Репутация: 108
Offline Offline

Пол: Мужской
Награды:
500 сообщений!За постоянность! [50 дней на форуме]Настоящий игродел!За участие в Весеннем конкурсе.
API: Unity 3D
Деятельность: Человек - оркестр
Сообщений: 731



« Ответ #2 : Октябрь 10, 2013, 21:19:57 »

Да, на одном, попробуем...
Записан

Я ненавижу когда лама по имени Карл бьёт меня 37 раз и ест мои руки.
Falcoware - Download Free Games
infernal
Участник
****

Репутация: 9
Offline Offline

Пол: Мужской
API: Unity 3D
Деятельность: Создаю игры, чтож ещё
Сообщений: 150



« Ответ #3 : Октябрь 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. Не люблю я триггеры и коллизии, мне кажется они жрут много ресурсов, да и геморроя с ними будь здоров
Записан

Не меняй достойных ради доступных
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.224 секунд. Запросов: 31.