public void Reset() { //activate on death subemitter. if (Owner.UseSubEmitters && !string.IsNullOrEmpty(Owner.DeathSubEmitter)) { XffectComponent sub = Owner.SpawnCache.GetEffect(Owner.DeathSubEmitter); if (sub == null) { return; } sub.transform.position = CurWorldPos; sub.Active(); } //Position = Vector3.up * -9999; Position = Owner.ClientTransform.position; Velocity = Vector3.zero; ElapsedTime = 0f; CurWorldPos = Owner.transform.position; LastWorldPos = CurWorldPos; IsCollisionEventSended = false; if (Owner.IsRandomStartColor) { //StartColor = Owner.RandomColorParam.GetGradientColor(UnityEngine.Random.Range(0f, 1f)); StartColor = Owner.RandomColorGradient.Evaluate(UnityEngine.Random.Range(0f, 1f)); } //do not use foreach in script! for (int i = 0; i < AffectorList.Count; i++) { Affector aft = AffectorList[i]; aft.Reset(); } Scale = Vector3.one; mIsFade = false; RenderObj.Reset(); if (Owner.UseSubEmitters && SubEmitter != null && XffectComponent.IsActive(SubEmitter.gameObject) && Owner.SubEmitterAutoStop) { SubEmitter.StopEmit(); } }
public void Reset() { Position = Owner.ClientTransform.position; Velocity = Vector3.zero; ElapsedTime = 0f; CurWorldPos = Owner.transform.position; LastWorldPos = CurWorldPos; if (Owner.IsRandomStartColor) { StartColor = Owner.RandomColorGradient.Evaluate(UnityEngine.Random.Range(0f, 1f)); } foreach (var v in AffectorList) { v.Reset(); } Scale = Vector3.one; //mIsFade = false; RenderObj.Reset(); }