//调用create接口 外界需要自行销毁 public ParticleAnimation CreateParticleAnimation(int id, GameObject parent = null, int w = -1, int h = -1) { if (!DataManager.UIEffectTable.ContainsKey(id)) { return(null); } UIEffectTableItem item = DataManager.UIEffectTable[id] as UIEffectTableItem; if (item == null) { return(null); } GameObject obj = new GameObject(item.particle); GameObject.DontDestroyOnLoad(obj); if (parent != null) { obj.transform.parent = parent.transform; obj.transform.localPosition = Vector3.zero; obj.transform.localRotation = Quaternion.identity; obj.transform.localScale = Vector3.one; obj.layer = parent.layer; } UISprite sprite = obj.AddMissingComponent <UISprite>(); if (w == -1) { sprite.width = item.width; } else { sprite.width = w; } if (h == -1) { sprite.height = item.height; } else { sprite.height = h; } UIParticlePreview preview = new UIParticlePreview(item.Camerasize); preview.SetTargetSprite(sprite, false); preview.RotationY = 180; preview.SetupParticle(item.particle); ParticleAnimation animation = new ParticleAnimation(sprite, preview); return(animation); }
public void Destroy() { if (mPreview != null) { mPreview.Destroy(); mPreview = null; } if (mSprite != null) { GameObject.Destroy(mSprite.gameObject); mSprite = null; } }
public ParticleAnimation(UISprite sprite, UIParticlePreview preview) { mSprite = sprite; mPreview = preview; }