void OnDrawGizmos() { for (int i = 0; i < platformGroupPositions.Count; i++) { if (platformGroupPositions[i].showGizmoOutline) { Vector3 gizmoCenter = Vector3.zero; Vector3 gizmoExtents = new Vector3(16, 16, 0); if (platformGroupPositions[i].enabledGameObject != null) { for (int j = 0; j < platformGroupPositions[i].positions.Count; j++) { RectangleMeshBuildScript rectangleMeshBuildScript = platformGroupPositions[i].enabledGameObject.GetComponent <RectangleMeshBuildScript>(); if (rectangleMeshBuildScript != null) { switch (rectangleMeshBuildScript.anchor) { case TextAnchor.MiddleCenter: gizmoCenter = Vector3.zero; gizmoExtents = new Vector3(rectangleMeshBuildScript.width / 2, rectangleMeshBuildScript.height / 2); break; case TextAnchor.LowerLeft: gizmoCenter = new Vector3(rectangleMeshBuildScript.width / 2, rectangleMeshBuildScript.height / 2); gizmoExtents = new Vector3(rectangleMeshBuildScript.width / 2, rectangleMeshBuildScript.height / 2); break; default: throw new ArgumentException("rectangleMeshBuildScript anchor " + rectangleMeshBuildScript.anchor + " not supported."); } } else { BoxCollider2D boxCollider2D = platformGroupPositions[i].enabledGameObject.GetComponent <BoxCollider2D>(); if (boxCollider2D != null) { gizmoCenter = boxCollider2D.offset; gizmoExtents = boxCollider2D.size / 2; } } GizmoUtility.DrawBoundingBox(this.transform.TransformPoint(platformGroupPositions[i].positions[j] + gizmoCenter), gizmoExtents, platformGroupPositions[i].outlineGizmoColor); } } } } }
public override void OnInspectorGUI() { DrawDefaultInspector(); RectangleMeshBuildScript myScript = (RectangleMeshBuildScript)target; myScript.SafeDeleteColliders(); if (GUILayout.Button("Build Object")) { myScript.BuildObject(); } if (GUILayout.Button("Create Prefab")) { myScript.CreatePrefab(); } }
void OnDrawGizmos() { if (showGizmoOutline) { if (platformPrefab != null) { RectangleMeshBuildScript rectangleMeshBuildScript = platformPrefab.GetComponent <RectangleMeshBuildScript>(); if (rectangleMeshBuildScript != null) { switch (rectangleMeshBuildScript.anchor) { case TextAnchor.MiddleCenter: _gizmoCenter = Vector3.zero; _gizmoExtents = new Vector3(rectangleMeshBuildScript.width / 2, rectangleMeshBuildScript.height / 2); break; case TextAnchor.LowerLeft: _gizmoCenter = new Vector3(rectangleMeshBuildScript.width / 2, rectangleMeshBuildScript.height / 2); _gizmoExtents = new Vector3(rectangleMeshBuildScript.width / 2, rectangleMeshBuildScript.height / 2); break; default: throw new ArgumentException("rectangleMeshBuildScript anchor " + rectangleMeshBuildScript.anchor + " not supported."); } } else { BoxCollider2D boxCollider2D = platformPrefab.GetComponent <BoxCollider2D>(); if (boxCollider2D != null) { _gizmoCenter = boxCollider2D.offset; _gizmoExtents = boxCollider2D.bounds.extents; } } } for (int i = 0; i < platformPositions.Count; i++) { GizmoUtility.DrawBoundingBox(this.transform.TransformPoint(platformPositions[i] + _gizmoCenter), _gizmoExtents, outlineGizmoColor); } } }