public void PlayFallParticle(bool isInRain) { if (isInRain) { FallDust_rain.Play(); } else { FallDust.Play(); } }
public void changeDustParticle(state currentState, state lastState, bool isSky, bool isInRain, dir Dir) { const int walkParticleNum = 3; const int runParticleNum = 10; const int walkParticleNum_rain = 10; const int runParticleNum_rain = 20; if (lastState == currentState) //未改变 { if (isInRain) //根据是否在雨中来改变粒子效果 { switch (currentState) { case state.run: WalkDustEmission_rain.rate = runParticleNum_rain; WalkDustEmission.rate = 0; break; case state.walk: WalkDustEmission_rain.rate = walkParticleNum_rain; WalkDustEmission.rate = 0; break; default: break; } } else { switch (currentState) { case state.run: WalkDustEmission_rain.rate = 0; WalkDustEmission.rate = runParticleNum; break; case state.walk: WalkDustEmission_rain.rate = 0; WalkDustEmission.rate = walkParticleNum; break; default: break; } } } else //已改变 { if (currentState == state.run || currentState == state.walk) { if (lastState != state.run && lastState != state.walk) //打开粒子 { switch (currentState) //根据状态改变粒子尘土数量 { case state.run: if (isInRain) //判断是否在雨中 { WalkDustEmission_rain.rate = runParticleNum_rain; } else { WalkDustEmission.rate = runParticleNum; } break; case state.walk: if (isInRain) //判断是否在雨中 { WalkDustEmission_rain.rate = walkParticleNum_rain; } else { WalkDustEmission.rate = walkParticleNum; } break; default: break; } } } else { if (lastState == state.run || lastState == state.walk) //关闭粒子 { WalkDustEmission.rate = 0; WalkDustEmission_rain.rate = 0; } if (currentState == state.jump && !isSky) //起跳粒子 { if (!isInRain) { JumpDust.Stop(); JumpDust.Play(); } else { JumpDust_rain.Stop(); JumpDust_rain.Play(); } } if (lastState == state.fall && !isSky) //落地粒子 { if (!isInRain) //判断是否在雨中 { FallDust.Stop(); FallDust.Play(); } else { FallDust_rain.Stop(); FallDust_rain.Play(); } } } } }