Ejemplo n.º 1
0
    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;
        }
    }
Ejemplo n.º 2
0
 public void DinoEvent()
 {
     DieLottery();
     currentState = DinoStates.WALK;
 }