void UpdateHead() { if (heldObject == null) { Grabbable g = GetBestObjectAtRange(); if (g != null) { look.FocusOn(g.transform); } else if (look.isFocused) { look.LooseFocus(); } } }
void StateUpdate() { if (stun) { return; } CleanSeenItem(); switch (state) { case HumanState.Walking: ScanRacoons(); break; case HumanState.Chasing: agent.destination = seenPlayer.transform.position; if (seenPlayer.GetHeldObject() == null) { if (seenItem != null) { look.FocusOn(seenItem.transform); ChangeState(HumanState.Collecting); } else { ChangeState(HumanState.Walking); } } else { if (IsObjectInRange(seenPlayer.gameObject) && !seenPlayer.IsInvincible()) { HangRaccoon(); // Effects look.LooseFocus(); ear.enabled = false; CameraController.instance.FocusOn(headBone, 30f); // System ChangeState(HumanState.Walking); GameManager.instance.GameOver(); } } break; case HumanState.Collecting: if (agent.velocity.magnitude > 0.01f) { agent.destination = seenItem.transform.position; if (IsObjectInRange(seenItem.gameObject) && !seenItem.IsFlying()) { StartCoroutine(PickUp(seenItem.gameObject)); } } else { ChangeState(HumanState.Walking); } break; } }