Отобразить ParticleSystem, когда OnCollisionEnter запускается
У меня есть 2 аудиоклипа, которые воспроизводятся при включении функции OnCollisionEnter. Я также хотел бы отобразить систему частиц в том месте, где произошло столкновение.
Вот код;
private var beenHit : boolean = false;
private var targetRoot : Animation;
var hitSound : AudioClip;
var chitSound : AudioClip;
var resetSound : AudioClip;
var resetTime : float = 3.0;
var dieEffectsPrefab : Transform;
public ParticleSystem DestructionEffect;
function OnCollisionEnter() {
audio.PlayOneShot(chitSound);
audio.PlayOneShot(hitSound);
Debug.Log("HitSomething");
animation.CrossFade ("dying");
Destroy(gameObject,1);
}
2 ответа
Давайте возьмем GameObject A и GameObject B
- A & B - должен быть коллайдер
- A || Б - любой должен иметь твердое тело, прикрепленное к нему.
- реализовать OnCollisionEnter() в скрипте A (или) B.
Когда триггеры столкновения получают экземпляр частицы и реализуют
Например: частичка экземпляра. Игра (); он начнет играть систему частиц.
Благодарю.
Добавьте переменную в свой код типа "GameObject".
Создайте "систему частиц" в: "Создать" -> "Система частиц". Настройте его так, как вы хотите.
Перетащите его на один "Префаб".
В редакторе Unity перетащите свой префаб в свой "GameObject".
Добавьте строку кода:
Instantiate (MyGameObject, this.transform.position, this.transform.rotation);
Эта строка кода создает экземпляр "GameObject" в мире.
На его "сборной" метке частицы: "Play On Awake".
Поэтому, когда вы создаете свою частицу в мире, она автоматически дает "Play".
Следуя этой пошаговой инструкции... вы получите то, что хотите.
Надеюсь, это поможет!