//宏图中处理逻辑 工具中提供固定形式 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); } }
public unsafe void SyncStartToPose(CGfxParticleState **pStates, int num) { if (pStates == null || num == 0) { return; } for (int i = 0; i < num; i++) { pStates[i]->SyncStartToPose(); } }
//生成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]); } }