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()); }
internal IParticlePlayer CreateParticlePlayer(MagicReleaser relaser, ParticleLayout layout) { var p = View.CreateParticlePlayer(relaser.View, layout); return(p); }