Пример #1
0
        public virtual void DoInitSystem(CGfxParticleSystem sys, GParticleComponent compoent)
        {
            CreateParticleSystems(sys);

            compoent.ParticleSystemPropertyChanged(sys);
            InitSystem(sys);
        }
Пример #2
0
        //[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);
        }
Пример #3
0
        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;
        }