private void Start()
    {
        _arriveBehaviour = GetComponent <ArriveAtPointBehaviour>();
        _shootBehaviour  = GetComponent <AIShootBehaviour>();
        _lookAtTarget    = GetComponent <LookAtTargetBehaviour>();
        _agent           = GetComponent <NavMeshAgent>();

        _shootBehaviour.enabled = false;
        _lookAtTarget.enabled   = false;

        _lookAtTarget.Target            = Target;
        _arriveBehaviour.TargetPosition = GetRandomPositionInView();

        _newPositionDelay = Random.Range(_newPositionMedianDelay - _delayOffset, _newPositionMedianDelay + _delayOffset);
    }
    private void Start()
    {
        _arriveBehaviour = GetComponent <ArriveAtPointBehaviour>();
        _strafeBehaviour = GetComponent <StrafeBehaviour>();
        _shootBehaviour  = GetComponent <AIShootBehaviour>();
        _lookAtTarget    = GetComponent <LookAtTargetBehaviour>();
        _agent           = GetComponent <NavMeshAgent>();

        _strafeBehaviour.enabled = false;
        _shootBehaviour.enabled  = false;
        _lookAtTarget.enabled    = false;
        _arriveBehaviour.enabled = true;

        _lookAtTarget.Target            = Target;
        _arriveBehaviour.TargetPosition = GetRandomPositionInView();
    }
    public override void OnInspectorGUI()
    {
        // Get reference to script
        ArriveAtPointBehaviour script = target as ArriveAtPointBehaviour;

        // Declare help text
        string helpText = "While this script is enabled, it will use the attached Nav Mesh Agent component to allow this GameObject to pathfind to a designated point in space.";

        // Display help text
        _showText = EditorGUILayout.BeginFoldoutHeaderGroup(_showText, "Info");
        if (_showText)
        {
            EditorGUILayout.HelpBox(helpText, MessageType.Info);
        }

        EditorGUILayout.EndFoldoutHeaderGroup();

        // Display base inspector gui
        base.OnInspectorGUI();
    }