Example #1
0
        private void TakeControlOverTargetAi()
        {
            _controlledAi?.WithdrawControl(this);

            // Not a fan of using the Gun's CreateRay here, as it's not related to the gun.
            Ray ray = gun.CreateRay();

            bool hitSomething = RayCaster.CastRay(ray, float.MaxValue, out RaycastHit hit);

            if (!hitSomething)
            {
                return;
            }

            var aiController = hit.transform.GetComponent <BaseAiController>();

            if (aiController == null)
            {
                return;
            }


            _controlledAi = aiController;

            Logging.Log($"Gotcha, {_controlledAi.name}!");

            _controlledAi.TakeControl(this);
        }
 public ControlLost(BaseAiController baseAiController)
 {
     this._baseAiController = baseAiController;
 }
 public ControlRegained(BaseAiController baseAiController)
 {
     _baseAiController = baseAiController;
 }