public virtual void DoInitSystem(CGfxParticleSystem sys, GParticleComponent compoent) { CreateParticleSystems(sys); compoent.ParticleSystemPropertyChanged(sys); InitSystem(sys); }
//[Editor.MacrossPanelPathAttribute("粒子系统/粒子效应器(McParticleEffector)/InitSystem")] //[Editor.MacrossMemberAttribute(Editor.MacrossMemberAttribute.enMacrossType.Callable | Editor.MacrossMemberAttribute.enMacrossType.Overrideable)] public virtual async System.Threading.Tasks.Task <bool> InitSystem(CGfxParticleSystem sys, EngineNS.GamePlay.Actor.GActor actor, GParticleComponent compoent, GParticleComponent.GParticleComponentInitializer initializer) { DoInitSystem(sys, compoent); //await sys.SetHostActorMesh(compoent, initializer, UseMeshRName); //sys.SetHostActorMaterial(compoent, initializer, UseMaterialRName); await sys.InitSubSystem(actor, compoent); sys.HostActorMesh = compoent; return(true); }
public async Task InitParticleSubSystemComponent(EngineNS.GamePlay.Actor.GActor actor, GParticleComponent particlecomponent, CGfxParticleSystem sys) { var rc = EngineNS.CEngine.Instance.RenderContext; ParticleModifier = new CGfxParticleModifier(); ParticleModifier.SetParticleSystem(sys); GMeshComponentInitializer initializer = new GMeshComponentInitializer(); await SetInitializer(rc, actor, particlecomponent, initializer); SpecialName = string.IsNullOrEmpty(sys.Name) ? Guid.NewGuid().ToString() : sys.Name; EditorVisibleName = sys.EditorVisibleName; particlecomponent.AddComponent(this); Host = actor; var mPlacementData = Placement.mPlacementData; Placement = new GParticlePlacementComponent(); await Placement.SetInitializer(rc, actor, this, mPlacementData as GComponentInitializer); Placement.SetMatrix(ref sys.Matrix); ((GParticlePlacementComponent)Placement).IsIgnore = !sys.IsBind; sys.HostActorMesh = this; }