public PickableController GetClosestPickable(TypePickable typePickable)
        {
            PickableController closestPickable = null;
            var distance = float.MaxValue;

            foreach (var pickable in pickablesInSight)
            {
                if (pickable.GetPickableType() != typePickable)
                {
                    continue;
                }

                if (closestPickable == null)
                {
                    closestPickable = pickable;
                    distance        = Vector3.Distance(closestPickable.transform.position,
                                                       transform.root.position);
                }
                else
                {
                    var currentPickableDistance =
                        Vector3.Distance(closestPickable.transform.position, pickable.transform.position);

                    if (distance > currentPickableDistance)
                    {
                        distance        = currentPickableDistance;
                        closestPickable = pickable;
                    }
                }
            }

            return(closestPickable);
        }
Пример #2
0
        private void PlaySound(TypePickable weaponType)
        {
            switch (weaponType)
            {
            case TypePickable.Shotgun:
                shotgunShootSound.Play();
                break;

            case TypePickable.Uzi:
                uziShootSounds[CRandom.Next(0, 2)].Play();
                break;

            default:
                starterWeaponShootSounds[CRandom.Next(0, 3)].Play();
                break;
            }
        }
Пример #3
0
 public void PublishWeaponShot(TypePickable weaponType)
 {
     OnWeaponShot?.Invoke(weaponType);
 }