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);
}
то этот скрипт будет работать как мина. При вхождении в объект, он будет подбрасывать игрока вверх.