Beispiel #1
0
        public void Initialize(Action completedAction)
        {
            ms_Instance = this;

            m_InitializeCompletedAction = completedAction;

            m_EffectStates = new EffectState[(int)VFXConfig.VFXType.Count];
            for (int iEffect = 0; iEffect < m_EffectStates.Length; iEffect++)
            {
                EffectState iterEffectState = new EffectState();
                iterEffectState.InstantiateCount    = 0;
                iterEffectState.InstantiatePool     = new Stack <VFXEffectInstance>();
                iterEffectState.PopCompletedActions = new Queue <Action <VFXEffectInstance> >();
                m_EffectStates[iEffect]             = iterEffectState;
            }

            m_AssetHelper = new VFXAddressableEffectHelper();

            m_AssetHelper.Initialize();

            if (VFXConstants.PRELOAD_ALL_EFFECTS)
            {
                m_InitializingEffectCount = m_EffectStates.Length;
                for (int iEffect = 0; iEffect < m_EffectStates.Length; iEffect++)
                {
                    LoadEffectAsync((VFXConfig.VFXType)iEffect, OnInitializedEffect);
                }
            }
            else
            {
#pragma warning disable 0162
                m_InitializeCompletedAction?.Invoke();
#pragma warning restore 0162
            }
        }
Beispiel #2
0
        private void OnVFXManagerInitialized()
        {
            m_IsInitialized = true;

            VFXManager.GetInstance().PopEffectAsync(VFXConfig.VFXType.Effect_1, OnPopEffect1);
            VFXManager.GetInstance().PopEffectAsync(VFXConfig.VFXType.Effect_1, OnPopEffect2);
        }
Beispiel #3
0
 public static VFXManager GetInstance()
 {
     if (ms_Instance == null)
     {
         ms_Instance = new GameObject("VFXManager").AddComponent <VFXManager>();
         DontDestroyOnLoad(ms_Instance.gameObject);
     }
     return(ms_Instance);
 }
Beispiel #4
0
 void LateUpdate()
 {
     if (Input.GetKeyDown(KeyCode.F5))
     {
         VFXManager.GetInstance().PushEffect(m_Effect1);
         VFXManager.GetInstance().PushEffect(m_Effect2);
     }
     if (Input.GetKeyDown(KeyCode.F6))
     {
         m_Effect1 = VFXManager.GetInstance().PopEffect(VFXConfig.VFXType.Effect_1);
         m_Effect2 = VFXManager.GetInstance().PopEffect(VFXConfig.VFXType.Effect_1);
     }
 }
Beispiel #5
0
 void Start()
 {
     VFXManager.GetInstance().Initialize(OnVFXManagerInitialized);
 }