Пример #1
0
        //宏图中处理逻辑 工具中提供固定形式
        public unsafe void OnParticleStateTick(CGfxParticleSystem sys, CGfxParticleState **pStates, int num, int stateIndex, CGfxParticleSubState state, float elaspe, int pindex)
        {
            for (int i = num - 1; i >= 0; i--)
            {
                if (pindex == 0)
                {
                    state.UpdateParticle(this, elaspe, sys, pStates[i]->Host);
                }

                state.MacrossParticleStateNodeUpdate(this, elaspe, sys, pStates[i]->Host, pStates[i], i);
            }
        }
Пример #2
0
        public unsafe void SyncStartToPose(CGfxParticleState **pStates, int num)
        {
            if (pStates == null || num == 0)
            {
                return;
            }

            for (int i = 0; i < num; i++)
            {
                pStates[i]->SyncStartToPose();
            }
        }
Пример #3
0
        //生成ParticleState时的初始数据 宏图中设置
        public virtual unsafe void DoParticleStateBorn(CGfxParticleSystem sys, CGfxParticleState **pStates, CGfxParticleSubState substate, int stateIndex, int particlenum = 0)
        {
            int nowindex = sys.ParticleNumber - particlenum;

            for (int i = 0; i < particlenum; i++)
            {
                if (stateIndex == 0)
                {
                    substate.InitParticle(this, sys, pStates[i]->Host);
                }
                substate.MacrossParticleStateNodeInit(this, sys, pStates[i]->Host, pStates[i], nowindex + i);
                substate.EffectParticleStatePose(ref *pStates[i]);
            }
        }