ProjectDDD/Packages/com.arongranberg.astar/Editor/ModifierEditors/RaycastModifierEditor.cs
2025-07-08 19:46:31 +09:00

39 lines
1.3 KiB
C#

using UnityEditor;
namespace Pathfinding {
[CustomEditor(typeof(RaycastModifier))]
[CanEditMultipleObjects]
public class RaycastModifierEditor : EditorBase {
protected override void Inspector () {
PropertyField("quality");
if (PropertyField("useRaycasting", "Use Physics Raycasting")) {
EditorGUI.indentLevel++;
PropertyField("use2DPhysics");
if (PropertyField("thickRaycast")) {
EditorGUI.indentLevel++;
FloatField("thickRaycastRadius", min: 0f);
EditorGUI.indentLevel--;
}
PropertyField("raycastOffset");
PropertyField("mask", "Layer Mask");
EditorGUI.indentLevel--;
}
PropertyField("useGraphRaycasting");
if (!FindProperty("useGraphRaycasting").boolValue && !FindProperty("useRaycasting").boolValue) {
EditorGUILayout.HelpBox("You should use either raycasting, graph raycasting or both, otherwise this modifier will not do anything", MessageType.Warning);
}
if (FindProperty("useGraphRaycasting").boolValue && !FindProperty("useRaycasting").boolValue) {
AstarPath.FindAstarPath();
if (AstarPath.active != null && AstarPath.active.data.gridGraph != null) {
EditorGUILayout.HelpBox("For grid graphs, when using only graph raycasting the funnel modifier has superceded this modifier. Try using that instead. It's faster and more accurate.", MessageType.Warning);
}
}
}
}
}