// 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 }
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); }
// Start is called before the first frame update void Start() { state = foxState.chaseChicken; rb = GetComponent <Rigidbody>(); }