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 } }
private void OnVFXManagerInitialized() { m_IsInitialized = true; VFXManager.GetInstance().PopEffectAsync(VFXConfig.VFXType.Effect_1, OnPopEffect1); VFXManager.GetInstance().PopEffectAsync(VFXConfig.VFXType.Effect_1, OnPopEffect2); }
public static VFXManager GetInstance() { if (ms_Instance == null) { ms_Instance = new GameObject("VFXManager").AddComponent <VFXManager>(); DontDestroyOnLoad(ms_Instance.gameObject); } return(ms_Instance); }
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); } }
void Start() { VFXManager.GetInstance().Initialize(OnVFXManagerInitialized); }