public override void Draw() { if (signalData == null || signalData.Count < 1) { return; } var lightLocalPositions = signalData.Select(x => x.localPosition).ToList(); var lightCount = lightLocalPositions.Count; // lights if (MapAnnotationTool.SHOW_HELP) { #if UNITY_EDITOR UnityEditor.Handles.Label(transform.position, " SIGNAL"); #endif } for (int i = 0; i < lightCount; i++) { var start = transform.TransformPoint(lightLocalPositions[i]); var end = start + transform.forward * 2f * (1 / MapAnnotationTool.EXPORT_SCALE_FACTOR); // TODO why is this 1/export scale? var signalColor = GetTypeColor(signalData[i]) + selectedColor; AnnotationGizmos.DrawWaypoint(start, MapAnnotationTool.PROXIMITY * 0.15f, signalColor); Gizmos.color = signalColor; Gizmos.DrawLine(start, end); AnnotationGizmos.DrawArrowHead(start, end, signalColor, arrowHeadScale: MapAnnotationTool.ARROWSIZE, arrowPositionRatio: 1f); } // stopline if (stopLine != null) { Gizmos.color = Color.magenta; Gizmos.DrawLine(transform.position, stopLine.transform.position); AnnotationGizmos.DrawArrowHead(transform.position, stopLine.transform.position, Color.magenta, arrowHeadScale: MapAnnotationTool.ARROWSIZE, arrowPositionRatio: 1f); if (MapAnnotationTool.SHOW_HELP) { #if UNITY_EDITOR UnityEditor.Handles.Label(stopLine.transform.position, " STOPLINE"); #endif } } // bounds Gizmos.matrix = transform.localToWorldMatrix * Matrix4x4.TRS(Vector3.zero, Quaternion.identity, Vector3.Scale(Vector3.one, boundScale)); Gizmos.color = Color.red; Gizmos.DrawWireCube(Vector3.zero, Vector3.one); if (MapAnnotationTool.SHOW_HELP) { #if UNITY_EDITOR UnityEditor.Handles.Label(transform.position + Vector3.up, " SIGNAL BOUNDS"); #endif } }
public override void Draw() { var start = transform.position; var end = start + transform.up * 4f; AnnotationGizmos.DrawWaypoint(transform.position, MapAnnotationTool.PROXIMITY * 0.35f, poleColor + selectedColor); Gizmos.color = poleColor + selectedColor; Gizmos.DrawLine(start, end); AnnotationGizmos.DrawArrowHead(start, end, poleColor + selectedColor, arrowHeadScale: MapAnnotationTool.ARROWSIZE, arrowPositionRatio: 1f); if (MapAnnotationTool.SHOW_HELP) { #if UNITY_EDITOR UnityEditor.Handles.Label(transform.position, " POLE"); #endif } }
public override void Draw() { var start = transform.position; var end = start + transform.up * 2f; var size = new Vector3(MapAnnotationTool.PROXIMITY * 0.75f, MapAnnotationTool.PROXIMITY * 0.75f, MapAnnotationTool.PROXIMITY * 0.75f); AnnotationGizmos.DrawCubeWaypoint(transform.position, size, laneColor + selectedColor); Gizmos.color = laneColor + selectedColor; Gizmos.DrawLine(start, end); AnnotationGizmos.DrawArrowHead(start, end, laneColor + selectedColor, arrowHeadScale: MapAnnotationTool.ARROWSIZE, arrowPositionRatio: 1f); if (MapAnnotationTool.SHOW_HELP) { #if UNITY_EDITOR UnityEditor.Handles.Label(transform.position, " LANE_SECTION"); #endif } }
public override void Draw() { var start = transform.position; var end = start + transform.up * 6f; AnnotationGizmos.DrawWaypoint(transform.position, MapAnnotationTool.WAYPOINT_SIZE, intersectionColor + selectedColor); Gizmos.color = intersectionColor + selectedColor; Gizmos.DrawLine(start, end); AnnotationGizmos.DrawArrowHead(start, end, intersectionColor + selectedColor, arrowHeadScale: MapAnnotationTool.ARROWSIZE, arrowPositionRatio: 1f); Gizmos.matrix = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.Scale(triggerBounds, transform.lossyScale)); Gizmos.DrawWireCube(Vector3.zero, Vector3.one); if (MapAnnotationTool.SHOW_HELP) { #if UNITY_EDITOR UnityEditor.Handles.Label(transform.position, " INTERSECTION"); #endif } }
public override void Draw() { var start = transform.position; var end = start + transform.up * 2f; AnnotationGizmos.DrawWaypoint(transform.position, MapAnnotationTool.WAYPOINT_SIZE * 0.5f, stopSignColor + selectedColor); Gizmos.color = stopSignColor + selectedColor; Gizmos.DrawLine(start, end); AnnotationGizmos.DrawArrowHead(start, end, stopSignColor + selectedColor, arrowHeadScale: MapAnnotationTool.ARROWSIZE, arrowPositionRatio: 1f); if (MapAnnotationTool.SHOW_HELP) { #if UNITY_EDITOR UnityEditor.Handles.Label(transform.position, " " + signType + " SIGN"); #endif } if (stopLine != null) { Gizmos.color = Color.magenta; Gizmos.DrawLine(transform.position, stopLine.transform.position); AnnotationGizmos.DrawArrowHead(transform.position, stopLine.transform.position, Color.magenta, arrowHeadScale: MapAnnotationTool.ARROWSIZE, arrowPositionRatio: 1f); if (MapAnnotationTool.SHOW_HELP) { #if UNITY_EDITOR UnityEditor.Handles.Label(stopLine.transform.position, " STOPLINE"); #endif } } // bounds need offset Gizmos.matrix = transform.localToWorldMatrix * Matrix4x4.TRS(boundOffsets, Quaternion.identity, Vector3.Scale(Vector3.one, boundScale)); Gizmos.color = Color.red; Gizmos.DrawWireCube(Vector3.zero, Vector3.one); if (MapAnnotationTool.SHOW_HELP) { #if UNITY_EDITOR UnityEditor.Handles.Label(transform.position + Vector3.up, " SIGNAL BOUNDS"); #endif } }