{!See https://docs.google.com/document/d/1takg_GmIBBKKTj-GHZCwzxohpQz7Bhekivkk72kYMtE/edit for reference implementation of OneTrust, dataLayer and GTM} {!OneTrust Cookies Consent} {!OneTrust Cookies Consent end} {!dataLayer initialization push} {!dataLayer initialization push end} {!Google Tag Manager} {!Google Tag Manager end} 단일/주기적 버스트 | Visual Effect Graph | 10.8.0
docs.unity3d.com
"{0}"의 검색 결과

    목차 표시/숨기기

    단일/주기적 버스트

    메뉴 경로:

    • Spawn > Single Burst
    • Spawn > Periodic Burst

    Single/Periodic Burst 블록은 한 번만 즉시 또는 지연을 사용하여 주기적으로 여러 개의 파티클을 생성합니다. 이 블록이 파티클 버스트를 생성하도록 트리거하면 spawnCount가 즉시 증가합니다. Repeat 설정을 Periodic으로 변경하면 이 블록은 해당 이름을 Periodic Burst로 변경하고 지연 후 여러 파티클 버스트를 생성합니다.

    블록 호환성

    이 블록은 다음 컨텍스트와 호환됩니다.

    • Spawn

    블록 설정

    설정 타입 설명
    Repeat 열거형 (인스펙터) 이 블록이 탄생을 한 번만 트리거할지, 하루 후에 반복할지 결정하는 데 사용하는 모드입니다. 옵션은 다음과 같습니다.
    • Single: 블록이 파티클의 단일 버스트를 생성합니다.
    • Periodic: 블록이 여러 파티클 버스트를 생성합니다. 파티클 버스트를 생성한 후 Delay에서 지정한 시간 동안 기다렸다가 또 다른 버스트를 생성합니다.
    Spawn Mode 열거형 이 블록이 생성할 파티클 수를 결정하는 데 사용하는 모드입니다. 옵션은 다음과 같습니다.
    • Constant: 이 블록은 특정 수의 파티클을 생성합니다. Count 프로퍼티에서 이 숫자를 설정할 수 있습니다.
    • Random: 이 블록이 두 경계 사이에 무작위 수의 파티클을 생성합니다. 이 모드를 선택하면 Count 프로퍼티는 x축은 하나의 경계 값을 나타내고 y축은 다른 하나의 경계 값을 나타내는 Vector 2가 됩니다.
    Delay Mode 열거형 이 블록이 버스트 사이에 사용할 지연 시간의 계산 방법을 결정하는 데 사용하는 모드입니다. 옵션은 다음과 같습니다.
    • Constant: 지연 시간이 특정 지속 시간입니다. Delay 프로퍼티에서 지속 시간을 설정할 수 있습니다.
    • Random: 지연 시간이 두 경계 사이의 무작위 지속 시간입니다. 이 모드를 선택하면 Delay 프로퍼티는 x축은 하나의 경계 값을 나타내고 y축은 다른 하나의 경계 값을 나타내는 Vector 2가 됩니다.

    블록 프로퍼티

    입력 타입 설명
    개수 float/Vector2 생성할 파티클 수입니다.
    Spawn Mode를 Constant로 설정하면 이 프로퍼티는 플로트 타입이고, 설정한 값은 생성할 파티클의 특정 개수입니다.
    Spawn Mode를 Random으로 설정하면 이 프로퍼티는 x축은 하나의 경계 값을 나타내고 y축은 다른 하나의 경계 값을 나타내는 Vector 2가 됩니다. 파티클 버스트를 생성할 때 이 블록은 이 두 값 사이의 무작위 수를 사용하여 생성할 파티클 수를 결정합니다.
    Delay float/Vector2 이 블록이 파티클 버스트를 생성하기 전에 대기하는 지연 시간입니다.
    Delay Mode를 Constant로 설정하면 이 프로퍼티는 플로트 타입이고, 설정한 값은 이 블록이 파티클 생성 간에 대기하는 특정 지연 시간입니다.
    Delay Mode를 Random으로 설정하면 이 프로퍼티는 x축은 하나의 경계 값을 나타내고 y축은 다른 하나의 경계 값을 나타내는 Vector 2가 됩니다. 지연을 시작할 때 이 블록은 이 두 값 사이의 무작위 수를 사용하여 지연 시간을 결정합니다.

    참고

    다음과 같은 커스텀 생성자 콜백 구현을 통해 단일 버스트 동작을 에뮬레이트할 수 있습니다.

    class SingleBurstEquivalent : VFXSpawnerCallbacks
    {
        public class InputProperties
        {
            public float Count = 1.0f;
            public float Delay = 2.0f;
        }
    
        static private readonly int countID = Shader.PropertyToID("Count");
        static private readonly int delayID = Shader.PropertyToID("Delay");
    
        public sealed override void OnPlay(VFXSpawnerState state, VFXExpressionValues vfxValues, VisualEffect vfxComponent)
        {
        }
    
        private float m_NextBurstTime;
        private bool m_Sleeping;
    
        public sealed override void OnUpdate(VFXSpawnerState state, VFXExpressionValues vfxValues, VisualEffect vfxComponent)
        {
            if (state.newLoop)
            {
                m_NextBurstTime = vfxValues.GetFloat(delayID);
                m_Sleeping = false;
            }
    
            if (!m_Sleeping && state.playing && state.totalTime >= m_NextBurstTime)
            {
                state.spawnCount += vfxValues.GetFloat(countID);
                m_Sleeping = true;
            }
        }
    
        public sealed override void OnStop(VFXSpawnerState state, VFXExpressionValues vfxValues, VisualEffect vfxComponent)
        {
        }
    }
    

    다음과 같은 커스텀 생성자 콜백 구현을 통해 주기적 버스트 동작을 에뮬레이트할 수 있습니다.

    class PeriodicBurstEquivalent : VFXSpawnerCallbacks
    {
        public class InputProperties
        {
            public float Count = 1.0f;
            public float Delay = 2.0f;
        }
    
        static private readonly int countID = Shader.PropertyToID("Count");
        static private readonly int delayID = Shader.PropertyToID("Delay");
    
        public sealed override void OnPlay(VFXSpawnerState state, VFXExpressionValues vfxValues, VisualEffect vfxComponent)
        {
        }
    
        private float m_NextBurstTime;
    
        public sealed override void OnUpdate(VFXSpawnerState state, VFXExpressionValues vfxValues, VisualEffect vfxComponent)
        {
            if (state.newLoop)
            {
                m_NextBurstTime = vfxValues.GetFloat(delayID);
            }
    
            if (state.playing && state.totalTime >= m_NextBurstTime)
            {
                m_NextBurstTime += vfxValues.GetFloat(delayID);
                state.spawnCount += vfxValues.GetFloat(countID);
            }
        }
    
        public sealed override void OnStop(VFXSpawnerState state, VFXExpressionValues vfxValues, VisualEffect vfxComponent)
        {
        }
    }
    
    문서 개요
    맨 위로
    Copyright © 2023 Unity Technologies — 상표 및 이용약관
    • 법률정보
    • 개인정보처리방침
    • 쿠키
    • 내 개인정보 판매 금지
    • Your Privacy Choices (Cookie Settings)