コード例 #1
0
        private bool AnyObstacleInComfortRange()
        {
            var selfDistToAvatar = GetDistanceSquared(_actorStateModel, _sensorDataComponent.Avatar);

            if (selfDistToAvatar <= _sensorDataComponent.ComfortRangeUnitsSquared)
            {
                return(true);
            }

            return(_sensorDataComponent
                   .GetInRangeExceptAvatar(SensorType.Visual)
                   .Any(actor =>
            {
                var distToThis = GetDistanceSquared(_actorStateModel, actor);
                var distToAvatar = GetDistanceSquared(actor, _sensorDataComponent.Avatar);

                return distToThis <= _sensorDataComponent.ComfortRangeUnitsSquared &&
                distToAvatar <= selfDistToAvatar;
            }));
        }