private static void DrawGizmosCases(MapEditorModel model) { float offset = 0.1f * model.Data.Grid.CaseSize; Vector3 gizmosCaseSize = new Vector3(model.Data.Grid.CaseSize - offset * 2, model.Data.Grid.CaseSize - offset * 2, 0.1f); Vector3 firstPosition = model.transform.position; firstPosition.x -= (model.Data.Grid.width * model.Data.Grid.CaseSize) / 2 - model.Data.Grid.CaseSize / 2; firstPosition.y -= (model.Data.Grid.height * model.Data.Grid.CaseSize) / 2 - model.Data.Grid.CaseSize / 2; for (int i = 0; i < model.Data.Grid.width; i++) { for (int j = 0; j < model.Data.Grid.height; j++) { //ECaseContent caseContent = (ECaseContent) model.Data.grid[i * model.Data.Grid.width + j]; ECaseContent caseContent = model.Data.Grid[i][j]; Gizmos.color = model.Data.Colors[(int)caseContent].Color; Vector3 position = firstPosition; position.x += i * model.Data.Grid.CaseSize; position.y += j * model.Data.Grid.CaseSize; Gizmos.DrawCube(position, gizmosCaseSize); } } }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { // Using BeginProperty / EndProperty on the parent property means that // prefab override logic works on the entire property. EditorGUI.BeginProperty(position, label, property); // Don't make child fields be indented var indent = EditorGUI.indentLevel; EditorGUI.indentLevel = 0; // Calculate rects float valueWidth = (position.width - labelWidth * 2) / 2; var y = new Rect(position.x + position.width / 2, position.y, position.width / 2, position.height); var x = new Rect(position.x, position.y, position.width / 2, position.height); Rect labelPositionX = new Rect(position.x, position.y, labelWidth, position.height); Rect positionX = new Rect(position.x + labelWidth, position.y, valueWidth, position.height); Rect labelPositionY = new Rect(position.x + labelWidth + valueWidth, position.y, labelWidth, position.height); Rect positionY = new Rect(position.x + 2 * labelWidth + valueWidth, position.y, valueWidth, position.height); // Draw fields - passs GUIContent.none to each so they are drawn without labels EditorGUI.LabelField(labelPositionX, "Type"); ECaseContent caseContent = (ECaseContent)(property.FindPropertyRelative("CaseContent").intValue); EditorGUI.LabelField(positionX, caseContent.ToString()); EditorGUI.LabelField(labelPositionY, "Color"); EditorGUI.PropertyField(positionY, property.FindPropertyRelative("Color"), GUIContent.none); // Set indent back to what it was EditorGUI.indentLevel = indent; EditorGUI.EndProperty(); }
public ColorContent(ECaseContent caseContent) { CaseContent = caseContent; Color = new Color(); }