Trigger

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Trigger

Сообщение nikitenko 15 сен 2011, 20:07

Всем доброго времени суток.
Помогите разобраться с trigger'ми
Синтаксис:
Используется csharp
public class example : MonoBehaviour {
    void OnTriggerStay(Collider other) {
        if (other.attachedRigidbody)
            other.attachedRigidbody.AddForce(Vector3.up * 10);
       
    }
}

Объясните мне что и и где.
Допустим за что отвечает other
и как сделать действие при входе объекта в триггер.
Если несложно по подробнее. @-)
nikitenko
UNIт
 
Сообщения: 50
Зарегистрирован: 17 авг 2011, 23:21

Re: Trigger

Сообщение Zaicheg 15 сен 2011, 22:14

Перенесено
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Trigger

Сообщение ArtUni3d 16 сен 2011, 13:12

При входе, функция OnTriggerEnter
И есть еще OnTriggerExit, лучше работайте через них, активируя переменную bool, а по ней работайте в Update. Ибо OnTriggerStay срабатывает не всегда.

other, это объект триггер в которым мы находимся\в который вошли\из которого вышли соответственно.

И это, условие в фигурные скобочки возьмите)
Аватара пользователя
ArtUni3d
UNITрон
 
Сообщения: 249
Зарегистрирован: 27 апр 2011, 22:12

Re: Trigger

Сообщение nikitenko 16 сен 2011, 13:36

ArtUni3d , спасибо более мение понял)
Вот теперь еще 1 вопрос)
У меня есть объект у которого есть колаидер-триггер допустим его имя play и объект который в него входит player значит что бы что-то произошло при входе player'a в play мне нужно написать так?
Синтаксис:
Используется csharp

void OnTriggerEnter(Collider play) {
       
    }

 
nikitenko
UNIт
 
Сообщения: 50
Зарегистрирован: 17 авг 2011, 23:21

Re: Trigger

Сообщение Paul Siberdt 16 сен 2011, 13:59

Сначала надо в вопросе расставить знаки препинания, чтобы словесная куча превратились в предложение.
В скобках функции вы можете указать какое угодно имя для принимаемого коллайдера. Имя нужно, чтобы в теле функции можно было к этому коллайдеру осознанно обращаться, а плеер это, кошачья шерсть или окаменевшее дерьмо динозавра - не имеет значения.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Trigger

Сообщение artk 16 сен 2011, 14:50

void OnTriggerStay(Collider other) {
if (other.attachedRigidbody)
other.attachedRigidbody.AddForce(Vector3.up * 10);

}

Скобочки можно не добавлять.
void OnTriggerStay(Collider other) - это функция, вызывается при событии. Если повесить этот скрипт на игрока, то когда игрок встанет в объект с collider -ом помеченным как триггер, то в переменную other(имя можно любое; оно будет использоваться только внутри функции OnTriggerStay) запишется ссылка на этот триггер и вызовется функция(сама).
Затем if (other.attachedRigidbody) , проверяет, есть ли у этого объекта Rigidbody, если есть то этому объекту прикладывается скорость 10.
Но этот скрипт не имеет смысла. Так как если у объекта с триггером повесить еще ригидбоди, то он просто будет падать вниз, проваливаясь, и скрипт никогда не сработает.
Если написать:
void OnTriggerEnter(Collider other) {
if (gameObject.attachedRigidbody)
gameObject.attachedRigidbody.AddForce(Vector3.up * 10);
}
то этот скрипт будет работать как мина. При вхождении в объект, он будет подбрасывать игрока вверх.
Аватара пользователя
artk
Старожил
 
Сообщения: 749
Зарегистрирован: 22 май 2011, 12:22

Re: Trigger

Сообщение ArtUni3d 16 сен 2011, 18:22

nikitenko писал(а):значит что бы что-то произошло при входе player'a в play мне нужно написать так?


Нет, так:

Синтаксис:
Используется csharp
void OnTriggerEnter (Collider other) {
     if(other.GameObject.name("Player")) {
     
     }
}
Аватара пользователя
ArtUni3d
UNITрон
 
Сообщения: 249
Зарегистрирован: 27 апр 2011, 22:12

Re: Trigger

Сообщение nikitenko 16 сен 2011, 19:02

Спасибо всем более мение понял)
nikitenko
UNIт
 
Сообщения: 50
Зарегистрирован: 17 авг 2011, 23:21


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot] и гости: 22


cron