using UnityEditor; using UnityEngine; [CustomEditor(typeof(WaypointCircuit))] public class WaypointCircuitEditor : Editor { private WaypointCircuit _script; public override void OnInspectorGUI() { EditorGUILayout.HelpBox("Create Waypoint By Press Shift + Left Mouse Click On Your Road", MessageType.Info); DrawDefaultInspector(); _script = (WaypointCircuit)target; } public void OnSceneGUI() { Event e = Event.current; if (e != null && e.isMouse && e.shift && e.type == EventType.MouseDown) { Ray worldRay = HandleUtility.GUIPointToWorldRay(e.mousePosition); if (Physics.Raycast(worldRay, out RaycastHit hitInfo)) { _script.PlaceWaypoint(hitInfo.point); } else { Debug.LogWarning("Waypoint Manager: Trying to place a waypoint but couldn't find a valid target. Have you clicked on a collider?"); } if (_script != null) Selection.activeGameObject = _script.gameObject; } } }