Пример #1
0
    // Update is called once per frame
    void Update()
    {
        switch (state)
        {
        case foxState.waiting:
            break;

        case foxState.chaseChicken:
            ChaseChicken();
            if (OnPiano())
            {
                state = foxState.runOffscreen;
            }
            break;

        case foxState.runOffscreen:
            RunOffscreen();
            if (transform.position.z < Camera.main.transform.position.z)
            {
                state = foxState.toDelete;
            }
            break;

        case foxState.toDelete:
            break;

        default:
            break;
        }
        transform.rotation = Quaternion.Euler(0, transform.rotation.eulerAngles.y, 0); // fix rotation to only y
    }
Пример #2
0
 private void ChaseChicken()
 {
     if (targetChicken == null)
     {
         state = foxState.toDelete;
         return;
     }
     targetDirection   = (targetChicken.transform.position - transform.position);
     targetDirection.y = 0;
     targetDirection.Normalize();
     transform.LookAt(targetChicken.transform.position);
 }
Пример #3
0
 // Start is called before the first frame update
 void Start()
 {
     state = foxState.chaseChicken;
     rb    = GetComponent <Rigidbody>();
 }