Запуск системы частиц в Unity - PullRequest
1 голос
/ 07 марта 2019

(прошу прощения за любые проблемы с форматированием) Я пытаюсь заставить простую систему частиц поиграть с OnTriggerEnter и остановиться на OnTriggerExit.Следуя API Unity для систем частиц (https://docs.unity3d.com/ScriptReference/ParticleSystem.Play.html)., я разработал следующий код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Electric_Trap_Trigger : MonoBehaviour
{

ParticleSystem system
{
    get
    {
        if (_CachedSystem == null)
            _CachedSystem = transform.GetChild(0).gameObject.GetComponent<ParticleSystem>();
        return _CachedSystem;
    }

}

private ParticleSystem _CachedSystem;

public bool includeChildren = true;

//Start is called before the first frame update
void Start()
{
    if (system != null)
        Debug.Log("Trap found");
}

// Update is called once per frame
void Update()
{

}

private void OnTriggerEnter(Collider other)
{
    if(other.gameObject.tag == "Player")
    {
        Debug.Log("Trap Triggered by: " + other.gameObject.tag);
        if(system != null)
        {
            system.Play(includeChildren);
        }
    }
}

private void OnTriggerExit(Collider other)
{
    if (other.gameObject.tag == "Player")
    {
        Debug.Log("Trap Exited by: " + other.gameObject.tag);
        if (system != null)
        {
            system.Stop(includeChildren);
        }
    }
}

}

Как вы можете видеть, у меня есть отладочный код, который сообщает, что система частиц была найдена, а объект игрока делаетдействительно взаимодействует с коробочным коллайдером. Система частиц не играет. Любая помощь будет принята с благодарностью.

Рецензии ответов: игра системы частиц в Unity Как запустить и остановить частицусистема в Unity? Правильно играть компонент системы частиц? Как запустить и остановить систему частиц в Unity?

1 Ответ

2 голосов
/ 07 марта 2019

Как предлагалось:

Ответ на мою конкретную проблему: «Как заставить существующую Unity ParticleSystem играть через скрипт» (чуть более описательный заголовок). Был решен. Обратите внимание, что необходимы дальнейшие исследования, чтобы понять, почему ответ сработал.

Одна настройка в ParticleSystem называется Prewarm. Включение этого параметра позволило системному. Play и system.Stop коду запускать и останавливать систему частиц. Как уже говорилось ранее, я пока не знаю, почему изменение этого параметра на true (включено) позволило коду работать.

Никаких исследований не проводилось. Я просто играл с настройками, по одному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...