Skip to content
This repository was archived by the owner on Apr 3, 2022. It is now read-only.

Commit a34f24b

Browse files
committed
Update AIDecisionDetectTargetRadius2DNode to use raycasts for obstacle detection.
1 parent f901a1f commit a34f24b

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

Common/Scripts/AI/Graph/Decisions/AIDecisionDetectTargetRadius2DNode.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ public class AIDecisionDetectTargetRadius2DNode : AIDecisionNode
1616
public LayerMask targetLayer;
1717
public bool obstacleDetection = true;
1818
public LayerMask obstacleMask;
19+
public AIDecisionDetectTargetRadius2D.ObstaclesDetectionModes obstaclesDetectionMode = AIDecisionDetectTargetRadius2D.ObstaclesDetectionModes.Raycast;
1920
public bool canTargetSelf = false;
21+
public float targetCheckFrequency = 1f;
22+
public int overlapMaximum = 10;
2023

2124
public override AIDecision AddDecisionComponent(GameObject go)
2225
{
@@ -27,7 +30,10 @@ public override AIDecision AddDecisionComponent(GameObject go)
2730
decision.TargetLayer = targetLayer;
2831
decision.ObstacleDetection = obstacleDetection;
2932
decision.ObstacleMask = obstacleMask;
33+
decision.ObstaclesDetectionMode = obstaclesDetectionMode;
3034
decision.CanTargetSelf = canTargetSelf;
35+
decision.TargetCheckFrequency = targetCheckFrequency;
36+
decision.OverlapMaximum = overlapMaximum;
3137
return decision;
3238
}
3339
}

Common/Scripts/AI/Graph/Decisions/Editor/AIDecisionDetectTargetRadius2DNodeEditor.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@ public class AIDecisionDetectTargetRadius2DNodeEditor : AIDecisionNodeEditor
1212
private SerializedProperty _targetLayer;
1313
private SerializedProperty _obstacleDetection;
1414
private SerializedProperty _obstacleMask;
15+
private SerializedProperty _obstaclesDetectionMode;
1516
private SerializedProperty _canTargetSelf;
16-
17+
private SerializedProperty _targetCheckFrequency;
18+
private SerializedProperty _overlapMaximum;
19+
1720
public override void OnBodyGUI()
1821
{
1922
base.OnBodyGUI();
@@ -23,16 +26,22 @@ public override void OnBodyGUI()
2326
_targetLayer = serializedObject.FindProperty("targetLayer");
2427
_obstacleDetection = serializedObject.FindProperty("obstacleDetection");
2528
_obstacleMask = serializedObject.FindProperty("obstacleMask");
29+
_obstaclesDetectionMode = serializedObject.FindProperty("obstaclesDetectionMode");
2630
_canTargetSelf = serializedObject.FindProperty("canTargetSelf");
31+
_targetCheckFrequency = serializedObject.FindProperty("targetCheckFrequency");
32+
_overlapMaximum = serializedObject.FindProperty("overlapMaximum");
2733

2834
serializedObject.Update();
29-
EditorGUIUtility.labelWidth = 120;
35+
EditorGUIUtility.labelWidth = 160;
3036
NodeEditorGUILayout.PropertyField(_radius);
3137
NodeEditorGUILayout.PropertyField(_detectionOriginOffset);
3238
NodeEditorGUILayout.PropertyField(_targetLayer);
3339
NodeEditorGUILayout.PropertyField(_obstacleDetection);
3440
NodeEditorGUILayout.PropertyField(_obstacleMask);
41+
NodeEditorGUILayout.PropertyField(_obstaclesDetectionMode);
3542
NodeEditorGUILayout.PropertyField(_canTargetSelf);
43+
NodeEditorGUILayout.PropertyField(_targetCheckFrequency);
44+
NodeEditorGUILayout.PropertyField(_overlapMaximum);
3645
serializedObject.ApplyModifiedProperties();
3746
}
3847
}

0 commit comments

Comments
 (0)