Пример #1
0
    //调用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);
    }
Пример #2
0
 public void Destroy()
 {
     if (mPreview != null)
     {
         mPreview.Destroy();
         mPreview = null;
     }
     if (mSprite != null)
     {
         GameObject.Destroy(mSprite.gameObject);
         mSprite = null;
     }
 }
Пример #3
0
 public ParticleAnimation(UISprite sprite, UIParticlePreview preview)
 {
     mSprite  = sprite;
     mPreview = preview;
 }