using System.Collections; using System.Collections.Generic; using UnityEngine; using System; //namespace Lemon.GenericLib.VFX //{ public class VFX_Manager : MonoBehaviour { public static VFX_Manager insatnceVFXM; private void Awake() { if (insatnceVFXM == null) { insatnceVFXM = this; } if (insatnceVFXM != this) { Destroy(gameObject); } } [SerializeField] vfxData[] allVFXData; private Dictionary vfxDictionary; [Serializable] struct vfxData { public string vfxName; public GameObject vfxObject; public bool shouldKill; public float lifeTime; } private void Start() { vfxDictionary = new Dictionary(); foreach (var item in allVFXData) { vfxDictionary.Add(item.vfxName, item); } } public GameObject spawnVFX(string vfxname, Vector3 position) { if (vfxDictionary.ContainsKey(vfxname)) { GameObject newVFX = Instantiate(vfxDictionary[vfxname].vfxObject, position, Quaternion.identity); if (vfxDictionary[vfxname].shouldKill) { Destroy(newVFX, vfxDictionary[vfxname].lifeTime); } return newVFX; } else { Debug.LogError($"vfx with name {vfxname} does not exist.\nPlease check if the spelling is correct."); return null; } } } //}