Beispiel #1
0
    IParticlePlayer IBattlePerception.CreateParticlePlayer(IMagicReleaser releaser, ParticleLayout layout)
    {
        var        res = layout.path;
        var        obj = ResourcesManager.Singleton.LoadResourcesWithExName <GameObject> (res);
        GameObject ins;

        if (obj == null)
        {
            return(null);
        }
        else
        {
            ins = GameObject.Instantiate(obj);
        }
        var viewRelease   = releaser as UMagicReleaserView;
        var viewTarget    = viewRelease.CharacterTarget as UCharacterView;
        var characterView = viewRelease.CharacterReleaser as UCharacterView;
        // var trans = (GTransform)characterView.Transform ;
        var form = layout.fromTarget == Layout.TargetType.Releaser ? characterView : viewTarget;

        if (layout.Bind)
        {
            ins.transform.SetParent(form.GetBoneByName(layout.fromBoneName), false);
        }
        else
        {
            ins.transform.SetParent(this.transform, false);
            ins.transform.position = form.GetBoneByName(layout.fromBoneName).position;
            ins.transform.rotation = Quaternion.identity;
        }

        switch (layout.destoryType)
        {
        case  ParticleDestoryType.Time:
            GameObject.Destroy(ins, layout.destoryTime);
            break;

        case ParticleDestoryType.Normal:
            GameObject.Destroy(ins, 3);
            break;

        case ParticleDestoryType.LayoutTimeOut:
            GameObject.Destroy(ins, 1);
            break;
        }

        return(ins.AddComponent <UParticlePlayer>());
    }
        IParticlePlayer IBattlePerception.CreateParticlePlayer(IMagicReleaser releaser, ParticleLayout layout)
        {
            var notify = new Proto.Notify_LayoutPlayParticle
            {
                ReleaseIndex = releaser.Index,
                FromTarget   = (int)layout.fromTarget,
                ToTarget     = (int)layout.toTarget,
                Path         = layout.path,
                ToBoneName   = layout.toBoneName,
                FromBoneName = layout.fromBoneName,
                DestoryTime  = layout.destoryTime,
                DestoryType  = (int)layout.destoryType
            };

            AddNotify(notify);
            return(new ParticlePlayerView());
        }
Beispiel #3
0
        internal IParticlePlayer CreateParticlePlayer(MagicReleaser relaser, ParticleLayout layout)
        {
            var p = View.CreateParticlePlayer(relaser.View, layout);

            return(p);
        }