Esempio n. 1
0
        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();
        }
Esempio n. 3
0
 public ColorContent(ECaseContent caseContent)
 {
     CaseContent = caseContent;
     Color       = new Color();
 }