Unity, график визуальных эффектов - как мне программно воспроизвести + остановить эффект? - PullRequest
0 голосов
/ 27 декабря 2018

Я хочу использовать Visual Effect Graph, чтобы совершить взрыв частицы.Я пытаюсь активировать и остановить этот взрыв программно.

Сначала я создаю Particles сборный объект и прикрепляю к нему объект Visual Effect Graph:

img1

Затем я создаю spawn rate anexposed parameter.Поэтому, когда взрыв активируется, он устанавливает этот параметр на 100. Чтобы остановить взрыв, скорость возрождения будет установлена ​​на 0:

img2

Теперь этот параметр виден в частицепрефаб:

img3

Затем я создаю экземпляр префикса Particles:

var effect = Instantiate(particlesPrefab, position), Quaternion.identity);

Эффект частиц появляется на экране, но проблема в Iне удается найти атрибут spawn rate.

Как программно изменить значение этого атрибута?

1 Ответ

0 голосов
/ 27 декабря 2018
  1. Получите VisualEffect из Particles GameObject:

    // In a MonoBehaviour attached to the Particles GameObject
    
    using UnityEngine.Experimental.VFX;
    
    ...
    
    // As a field in the MonoBehaviour
    public VisualEffect myEffect;
    
    ... 
    
    myEffect = GetComponent<VisualEffect>();
    
  2. Используйте SetInt, чтобы установить открытое целое число, называемое "spawn rate":

    // As class field
    
    public static readonly string SPAWN_RATE_NAME = "spawn rate";
    
    // Wherever you want to stop explosion
    
    myEffect.SetInt(SPAWN_RATE_NAME, 0);
    
    // Wherever you want to start explosion
    
    myEffect.SetInt(SPAWN_RATE_NAME, 100);
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...