コード例 #1
0
        private void DrawCountLabel(Vector3 labelOffset)
        {
            var knownEntities = _sensorDataComponent.GetInRange(_type);

            Handles.Label(
                transform.position + labelOffset,
                $"{_type}: {knownEntities.Count} | AVTR: {_sensorDataComponent.IsAvatarInRange(_type)}",
                EditorStyles.boldLabel);
        }
コード例 #2
0
        private bool HasTouchedValidActor()
        {
            if (_sensorDataComponent.IsAvatarInRange(SensorType.Touch))
            {
                return(true);
            }

            if (_sensorDataComponent
                .GetInRange(SensorType.Touch)
                .Any(IsFriend))
            {
                return(true);
            }

            return(false);
        }
コード例 #3
0
        public override BehaviourTreeStatus Tick(TimeData time)
        {
            // Prefer damaging Avatar
            if (_sensorDataComponent.IsAvatarInRange(SensorType.Touch))
            {
                StoreDamageReceiver(_sensorDataComponent.Avatar);
                return(BehaviourTreeStatus.Success);
            }

            // Then try to damage friend
            var friendActor = _sensorDataComponent
                              .GetInRange(SensorType.Touch)
                              .FirstOrDefault(IsFriend);

            if (friendActor != null)
            {
                StoreDamageReceiver(friendActor);
                return(BehaviourTreeStatus.Success);
            }

            return(BehaviourTreeStatus.Failure);
        }