Проблема с Триггерами
allods Дата: Вт, 16 Апр 2013, 22:39 | Сообщение # 1
Сообщений: 5
Награды:
0
Репутация:
0
Статус: Offline
Привет всем, нужна помощь. У меня два объекта и у обоих разные Таги и висят по триггеру. Когда юнит1 входит в триггер юнита2 то юнит2 берет юнит1 в фокус. Когда юнит2 входит в триггер юнита1 то юнит1 берет юнит2 в фокус. У юнита2 триггер меньше в 2 раза размером, но когда он входит в триггер юнита1 то оба берут друг друга в фокус, хотя юнит1 должен брать в фокус а только когда юнит2 дойдет до юнит1 тот должен за фокусить того. В чем проблема? вот так выглядит все Код
function OnTriggerEnter (other : Collider) { if(!myTarget){ if(other.gameObject.tag == "mob"){ myTarget = other.gameObject.transform; } } }
для юнит1 Код
function OnTriggerEnter (other : Collider) { if(!myTarget){ if(other.gameObject.tag == "unite"){ myTarget = other.gameObject.transform; } } }
А это для 2го Почему оно все срабатывает 1им триггером а не каждый своим?
Сообщение отредактировал allods - Вт, 16 Апр 2013, 22:41
Сообщение Привет всем, нужна помощь. У меня два объекта и у обоих разные Таги и висят по триггеру. Когда юнит1 входит в триггер юнита2 то юнит2 берет юнит1 в фокус. Когда юнит2 входит в триггер юнита1 то юнит1 берет юнит2 в фокус. У юнита2 триггер меньше в 2 раза размером, но когда он входит в триггер юнита1 то оба берут друг друга в фокус, хотя юнит1 должен брать в фокус а только когда юнит2 дойдет до юнит1 тот должен за фокусить того. В чем проблема? вот так выглядит все Код
function OnTriggerEnter (other : Collider) { if(!myTarget){ if(other.gameObject.tag == "mob"){ myTarget = other.gameObject.transform; } } }
для юнит1 Код
function OnTriggerEnter (other : Collider) { if(!myTarget){ if(other.gameObject.tag == "unite"){ myTarget = other.gameObject.transform; } } }
А это для 2го Почему оно все срабатывает 1им триггером а не каждый своим? Автор - allods Дата добавления - 16 Апр 2013 в 22:39
Левша Дата: Ср, 17 Апр 2013, 16:14 | Сообщение # 2
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Так при контакте коллайдеров - триггеров в любом случае оба сработают... Видимо надо использовать по 2 коллайдера на обьектах, один из которых триггер.
X.cor.R (Prologue)
Сообщение Так при контакте коллайдеров - триггеров в любом случае оба сработают... Видимо надо использовать по 2 коллайдера на обьектах, один из которых триггер. Автор - Левша Дата добавления - 17 Апр 2013 в 16:14
allods Дата: Чт, 18 Апр 2013, 16:08 | Сообщение # 3
Сообщений: 5
Награды:
0
Репутация:
0
Статус: Offline
Я использую еще Character Controller он же тоже вроде коллайдерДобавлено (18.04.2013, 16:08) --------------------------------------------- 2 коллайдера не помогают
Сообщение Я использую еще Character Controller он же тоже вроде коллайдерДобавлено (18.04.2013, 16:08) --------------------------------------------- 2 коллайдера не помогают
Автор - allods Дата добавления - 18 Апр 2013 в 16:08
commandoby Дата: Чт, 18 Апр 2013, 19:01 | Сообщение # 4
Unity 3D Free
Сообщений: 836
Награды:
3
Репутация:
211
Статус: Offline
allods , Удочери к своим объектам ещё по одному коллайдеру.
Блог.
Сообщение allods , Удочери к своим объектам ещё по одному коллайдеру.Автор - commandoby Дата добавления - 18 Апр 2013 в 19:01
allods Дата: Пт, 19 Апр 2013, 02:29 | Сообщение # 5
Сообщений: 5
Награды:
0
Репутация:
0
Статус: Offline
Все получилось, удочерил коллайдеры к юнитам , поставил теги на юнитов и все работает. Спасибо за ответы Еще один вопрос, как в JS создавать листы, ну типа набить его юнитами а потом сортировать ? Искал в инете нашел только для C#
Сообщение Все получилось, удочерил коллайдеры к юнитам , поставил теги на юнитов и все работает. Спасибо за ответы Еще один вопрос, как в JS создавать листы, ну типа набить его юнитами а потом сортировать ? Искал в инете нашел только для C# Автор - allods Дата добавления - 19 Апр 2013 в 02:29
Левша Дата: Пт, 19 Апр 2013, 11:17 | Сообщение # 6
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Цитата (commandoby )
Удочери к своим объектам ещё по одному коллайдеру
Цитата (allods )
удочерил коллайдеры к юнитам
Это на каком языке вы общаетесь ? С каких пор компоненты удочеряються к обьектам ?
X.cor.R (Prologue)
Сообщение Цитата (commandoby )
Удочери к своим объектам ещё по одному коллайдеру
Цитата (allods )
удочерил коллайдеры к юнитам
Это на каком языке вы общаетесь ? С каких пор компоненты удочеряються к обьектам ? Автор - Левша Дата добавления - 19 Апр 2013 в 11:17
allods Дата: Пт, 19 Апр 2013, 19:56 | Сообщение # 7
Сообщений: 5
Награды:
0
Репутация:
0
Статус: Offline
Ну я создал пустой обьект, создал коллайдер шара на нем и поставил галочку на триггер , а потом засунул в юнита =) Добавлено (19.04.2013, 17:27) --------------------------------------------- Нашел для своей проблемы с листами Код
var targets : List.<Transform>;
но консоль пишет The name 'List' does not denote a valid type ('not found'). Did you mean 'UnityEngine.Light'? Что оно хочет? Добавлено (19.04.2013, 17:42) --------------------------------------------- надо вставить это Код
import System.Collections.Generic;
Добавлено (19.04.2013, 18:37) --------------------------------------------- Код
import System.Collections.Generic; var targets : List.<Transform>; var selectedTarget : Transform; function Start () { targets = new List.<Transform>(); selectedTarget = null; AddAllEnemies(); } function AddAllEnemies() { var go : GameObject[] = GameObject.FindGameObjectsWithTag("2"); for(var enemy : GameObject in go) { AddTarget(enemy.transform); } } function AddTarget(enemy : Transform) { targets.Add(enemy); } function CompareDistanceToPlayer(a : GameObject, b : GameObject) { var a_dist = Vector3.Distance(transform.position, a.transform.position); var b_dist = Vector3.Distance(transform.position, b.transform.position); return a_dist.CompareTo(b_dist); } function SortByDistance() { var targets = new Array(); targets.Sort(CompareDistanceToPlayer); } function Update () { selectedTarget = targets[1]; }
Вот ято я использую, проблема в том что он их никак не сортируетДобавлено (19.04.2013, 19:56) --------------------------------------------- Кто может помочь со скриптом что выше, почему он не сортирует по дистанции а просто как добавил в лист так и висят
Сообщение отредактировал allods - Пт, 19 Апр 2013, 18:38
Сообщение Ну я создал пустой обьект, создал коллайдер шара на нем и поставил галочку на триггер , а потом засунул в юнита =) Добавлено (19.04.2013, 17:27) --------------------------------------------- Нашел для своей проблемы с листами Код
var targets : List.<Transform>;
но консоль пишет The name 'List' does not denote a valid type ('not found'). Did you mean 'UnityEngine.Light'? Что оно хочет? Добавлено (19.04.2013, 17:42) --------------------------------------------- надо вставить это Код
import System.Collections.Generic;
Добавлено (19.04.2013, 18:37) --------------------------------------------- Код
import System.Collections.Generic; var targets : List.<Transform>; var selectedTarget : Transform; function Start () { targets = new List.<Transform>(); selectedTarget = null; AddAllEnemies(); } function AddAllEnemies() { var go : GameObject[] = GameObject.FindGameObjectsWithTag("2"); for(var enemy : GameObject in go) { AddTarget(enemy.transform); } } function AddTarget(enemy : Transform) { targets.Add(enemy); } function CompareDistanceToPlayer(a : GameObject, b : GameObject) { var a_dist = Vector3.Distance(transform.position, a.transform.position); var b_dist = Vector3.Distance(transform.position, b.transform.position); return a_dist.CompareTo(b_dist); } function SortByDistance() { var targets = new Array(); targets.Sort(CompareDistanceToPlayer); } function Update () { selectedTarget = targets[1]; }
Вот ято я использую, проблема в том что он их никак не сортируетДобавлено (19.04.2013, 19:56) --------------------------------------------- Кто может помочь со скриптом что выше, почему он не сортирует по дистанции а просто как добавил в лист так и висят
Автор - allods Дата добавления - 19 Апр 2013 в 19:56
Maxik Дата: Вт, 14 Май 2013, 17:43 | Сообщение # 8
Сообщений: 23
Награды:
0
Репутация:
0
Статус: Offline
Цитата (allods )
Кто может помочь со скриптом что выше, почему он не сортирует по дистанции а просто как добавил в лист так и висят
может быть потому что функция SortByDistance() нигде не вызывается?
Сообщение Цитата (allods )
Кто может помочь со скриптом что выше, почему он не сортирует по дистанции а просто как добавил в лист так и висят
может быть потому что функция SortByDistance() нигде не вызывается?Автор - Maxik Дата добавления - 14 Май 2013 в 17:43