// Start is called before the first frame update void Start() { _npcPursuitController = GetComponent <NPCPursuitController>(); NPCAnimation = GetComponent <Animator>(); couroutineOn = true; StartCoroutine(Patroling()); }
void Start() { _overheadStatus = transform.Find("OverheadStatus").gameObject; _visionDetector = transform.Find("VisionDetector").gameObject; visionController = _visionDetector.GetComponent <VisionController>(); npcBodyCollider = GetComponent <BoxCollider2D>(); _npcPursuitController = GetComponent <NPCPursuitController>(); _status = _overheadStatus.GetComponent <SpriteRenderer>(); hasGonePastCheckpoint = false; _brokenPursuitPauseTimer = _npcPursuitController.BrokenPursuitPauseTime; randomDirChangeTimerNeedsSet = true; dirChangePauseTimer = SetDirChangePauseTimer(); }
void Update() { _npcPursuitController = GetComponent <NPCPursuitController>(); _isInPursuit = _npcPursuitController.IsInPursuit; _hasBrokenPursuit = _npcPursuitController.HasBrokenPursuit; if (!_hasBrokenPursuit && !visionController.IsPlayerDetected) { if (EnableRandomPatrol) { randomDirChangeTimer -= Time.deltaTime; if (DoRandomDirectionChange() && !hasGonePastCheckpoint) { if (dirChangePauseTimer > 0) { PauseMovement(); dirChangePauseTimer -= Time.deltaTime; } else { randomDirChangeTimerNeedsSet = true; dirChangePauseTimer = SetDirChangePauseTimer(); RotateNPCAndChildren(); } } else { MoveNormally(); } } else { MoveNormally(); } } else if (_hasBrokenPursuit) { _brokenPursuitPauseTimer -= Time.deltaTime; if (_brokenPursuitPauseTimer > 0) { if (!visionController.IsPlayerDetected) { PauseMovement(); _status.sprite = visionController.SearchingSprite; } else { _npcPursuitController.HasBrokenPursuit = false; _brokenPursuitPauseTimer = _npcPursuitController.BrokenPursuitPauseTime; } } else if (_brokenPursuitPauseTimer < 0) { _npcPursuitController.HasBrokenPursuit = false; _brokenPursuitPauseTimer = _npcPursuitController.BrokenPursuitPauseTime; RotateNPCAndChildren(); MoveNormally(); } } }