public override ParticleState changeState(UserParticle particle){ if (Input.GetKeyDown (KeyCode.UpArrow)) { if (Random.Range(0,100) > 98){ Debug.Log ("State: Floating"); return new FloatingState(); } } return null; }
public override ParticleState changeState(UserParticle particle){ if (Input.GetKeyDown (KeyCode.DownArrow)) { Debug.Log ("State: Returning"); return new ReturningState(); } return null; }
public override void enter (UserParticle particle) { particle.rigidbody.isKinematic = false; }
public override void enter (UserParticle particle) { particle.rigidbody.velocity = Vector3.zero; particle.rigidbody.isKinematic = true; }
public virtual void update (UserParticle particle){}
public virtual ParticleState changeState(UserParticle particle){ return null; }
public virtual void enter(UserParticle particle){}
public override void update(UserParticle particle){ particle.rigidbody.detectCollisions = false; particle.transform.position = Vector3.Lerp (particle.transform.position, particle.originPlatform.ParticleOriginalLocation (particle.xPositionInPlatform, particle.zPositionInPlatform), 0.1f); particle.transform.rotation = Quaternion.Lerp (particle.transform.rotation, Quaternion.AngleAxis(0, Vector3.zero), Time.time * 0.1f); if (Vector3.Distance(particle.transform.position, particle.originPlatform.ParticleOriginalLocation(particle.xPositionInPlatform, particle.zPositionInPlatform)) < 0.3f){ particle.transform.position = particle.originPlatform.ParticleOriginalLocation(particle.xPositionInPlatform, particle.zPositionInPlatform); particle.transform.rotation = Quaternion.AngleAxis(0, Vector3.zero); //This seems dirty- should I be setting states here? I guess really I wouldn't be using input on the 'real' thing particle.state_ = new StaticState(); particle.state_.enter(particle); Debug.Log ("State: Static"); } }
public override void update(UserParticle particle){ particle.rigidbody.AddForce (particle.floatingAcceleration); }