static void DrawGameObjectName(ItemReference itemReference, GizmoType gizmoType) { // Dont show gizmos over item references that live in an inactive layout if (itemReference.transform.parent) { ItemLayout layout = itemReference.transform.parent.GetComponent <ItemLayout>(); if (layout && !layout.visualize) { return; } } if (!backgroundTexture) { backgroundTexture = new Texture2D(1, 1); backgroundTexture.SetPixel(0, 0, new Color(0f, 0f, 0f, .75f)); backgroundTexture.Apply(); } GUIStyle labelStyle = new GUIStyle(); labelStyle.fontSize = 14; labelStyle.fontStyle = FontStyle.Bold; labelStyle.normal.textColor = itemReference.GetStatusColor(); labelStyle.normal.background = backgroundTexture; Handles.Label(itemReference.transform.position, "Ref" + itemReference.NiceName(), labelStyle); // TODO: edit the bounds gizmo // Handles.CubeCap(0, itemReference.transform.position, Quaternion.identity, 1f); // Handles.RectangleCap(0, itemReference.transform.position, Quaternion.identity, 1f); }
public override void OnInspectorGUI() { ItemReference item = (ItemReference)target; if (!item) { return; } Undo.RecordObject(item, "Modify item reference"); // Load item type at least, to simplify search :) if (firstTime) { //Item instance = GetItemById(item.itemId); //typeFilter = instance ? instance.type : ItemType.Decoration; firstTime = false; } EditorGUIUtility.labelWidth = 75f; GUIStyle titleStyle = new GUIStyle(); titleStyle.fontSize = 20; titleStyle.fontStyle = FontStyle.Bold; titleStyle.normal.textColor = item.GetStatusColor(); EditorGUILayout.LabelField(item.NiceName(), titleStyle); EditorGUILayout.Space(); EditorGUILayout.Space(); ItemReferenceData(item); EditorGUILayout.Space(); if (!item.procedural) { ItemShowPreview(); } EditorGUILayout.Space(); GUILayout.BeginVertical(); if (EditorApplication.isPlaying) { EditorGUILayout.LabelField("Cannot edit in play mode."); } else { if (!item.procedural) { ItemSelectGUI(item); } } GUILayout.EndVertical(); if (GUI.changed) { EditorUtility.SetDirty(item); } }