Проблема с Триггерами - Форум Игроделов
Пн, 10 Фев 2025, 11:28 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Проблема с Триггерами
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)
удочерил коллайдеры к юнитам

Это на каком языке вы общаетесь ?
С каких пор компоненты удочеряються к обьектам ?
biggrin


X.cor.R (Prologue)
 
Сообщение
Цитата (commandoby)
Удочери к своим объектам ещё по одному коллайдеру

Цитата (allods)
удочерил коллайдеры к юнитам

Это на каком языке вы общаетесь ?
С каких пор компоненты удочеряються к обьектам ?
biggrin

Автор - Левша
Дата добавления - 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
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025