private void Update() { switch (currentState) { case DinoStates.WALK: Vector3 dest; if (gonnaDie.Count > 0) { dest = gonnaDie[0]; } else { dest = endPosition; } Vector3 inc = Vector3.zero; if (dest.x <= transform.position.x) { inc += Vector3.left; } if (dest.y <= transform.position.y) { inc += Vector3.down; } else if (dest.y >= transform.position.y) { inc += Vector3.up; } inc = transform.position + inc * Time.deltaTime * speed; inc.x = Mathf.Clamp(inc.x, dest.x, transform.position.x); inc.y = Mathf.Clamp(inc.y, dest.y, transform.position.y); inc.z = Mathf.Clamp(inc.z, dest.z, transform.position.z); transform.position = inc; //Debug.Log("Dest: " + dest); if (Vector3.Distance(transform.position, dest) < 0.01f) { currentState = DinoStates.EAT; } if (gonnaDie.Count == 0 && Vector3.Distance(transform.position, dest) < 0.01f) { canWalk = false; currentState = DinoStates.IDLE; transform.position = startPosition; } break; case DinoStates.EAT: Eat(); currentState = DinoStates.WALK; break; case DinoStates.IDLE: transform.position = startPosition; break; } }
public void DinoEvent() { DieLottery(); currentState = DinoStates.WALK; }