示例#1
0
    // Update is called once per frame
    void Update()
    {
        if (player.paused)
        {
            return;
        }

        switch (state)
        {
        case EATERSTATES.NONE:
            hunger -= 5f * Time.deltaTime;

            Debug.Log(hunger);

            if (hunger <= 85f)
            {
                roty += 0.5f * Time.deltaTime;
                transform.localRotation = Quaternion.Euler(rotx, roty, rotz);
            }

            if (hunger <= 10)
            {
                killSound.Play();
                player.dead = true;
            }

            break;

        case EATERSTATES.RESET:
            Vector3 lerpedEulerAngles = Vector3.Lerp(transform.localEulerAngles, baseRotations, 0.5f);
            transform.localRotation = Quaternion.Euler(lerpedEulerAngles.x, lerpedEulerAngles.y, lerpedEulerAngles.z);
            roty = lerpedEulerAngles.y;
            if (Mathf.Abs(transform.localEulerAngles.y - baseRotations.y) <= 0.5f)
            {
                Debug.Log("reset");
                state = EATERSTATES.NONE;
            }

            break;
        }
    }
示例#2
0
 public void Feed(float nutritionalValue)
 {
     state  = EATERSTATES.RESET;
     hunger = Mathf.Min(hunger + nutritionalValue, 100f);
 }