private JSONObject WriteMaterial(Material material)
    {
        JSONObject materialObject = new JSONObject();

        if (ResourcesDirectory.IsCustomMaterial(material))
        {
            materialObject["mode"]  = ResourcesDirectory.GetCustomMaterialColorMode(material).ToString();
            materialObject["color"] = WriteColor(material.color);
            materialObject["alpha"] = ResourcesDirectory.GetCustomMaterialIsTransparent(material);
        }
        else
        {
            materialObject["name"] = material.name;
        }
        return(materialObject);
    }
Exemple #2
0
    private static MessagePackObjectDictionary WriteMaterial(Material material, bool specifyAlphaMode)
    {
        var materialDict = new MessagePackObjectDictionary();

        if (ResourcesDirectory.IsCustomMaterial(material))
        {
            materialDict[FileKeys.MATERIAL_MODE]  = ResourcesDirectory.GetCustomMaterialColorMode(material).ToString();
            materialDict[FileKeys.MATERIAL_COLOR] = WriteColor(material.color);
            if (specifyAlphaMode)
            {
                materialDict[FileKeys.MATERIAL_ALPHA] = ResourcesDirectory.GetCustomMaterialIsTransparent(material);
            }
        }
        else
        {
            materialDict[FileKeys.MATERIAL_NAME] = material.name;
        }
        return(materialDict);
    }
Exemple #3
0
    public void Start()
    {
        if (colorModeSet == ColorModeSet.UNLIT_ONLY)
        {
            colorMode = ColorMode.UNLIT;
        }
        else
        {
            colorMode = ColorMode.MATTE;
        }

        materialDirectory = rootDirectory;
        UpdateMaterialDirectory();
        if (highlightMaterial != null && ResourcesDirectory.IsCustomMaterial(highlightMaterial))
        {
            highlightMaterial = Instantiate(highlightMaterial);
            tab       = 0;
            colorMode = ResourcesDirectory.GetCustomMaterialColorMode(highlightMaterial);
        }
        else
        {
            tab = 1;
        }
    }
Exemple #4
0
    private void ColorTab()
    {
        if (highlightMaterial == null || !ResourcesDirectory.IsCustomMaterial(highlightMaterial))
        {
            highlightMaterial = ResourcesDirectory.MakeCustomMaterial(colorMode, allowAlpha);
            if (allowAlpha)
            {
                highlightMaterial.color = new Color(0, 0, 1, 0.25f);
            }
            else
            {
                highlightMaterial.color = Color.red;
            }
            if (handler != null)
            {
                handler(highlightMaterial);
            }
        }
        ColorMode newMode;

        if (colorModeSet == ColorModeSet.UNLIT_ONLY)
        {
            newMode = ColorMode.UNLIT;
        }
        else
        {
            string[] colorModes;
            if (colorModeSet == ColorModeSet.OBJECT)
            {
                colorModes = OBJECT_COLOR_MODES;
            }
            else if (allowAlpha)
            {
                colorModes = TRANSPARENT_COLOR_MODES;
            }
            else
            {
                colorModes = OPAQUE_COLOR_MODES;
            }
            // TODO: this is ugly
            int m = System.Array.IndexOf(colorModes, COLOR_MODE_NAMES[(int)colorMode]);
            m = GUILayout.SelectionGrid(m, colorModes,
                                        colorModes.Length, GUIStyleSet.instance.buttonTab);
            newMode = (ColorMode)System.Array.IndexOf(COLOR_MODE_NAMES, colorModes[m]);
        }
        if (newMode != colorMode)
        {
            Material newMat = ResourcesDirectory.MakeCustomMaterial(newMode, allowAlpha);
            newMat.color      = highlightMaterial.color;
            highlightMaterial = newMat;
            colorMode         = newMode;
            if (handler != null)
            {
                handler(highlightMaterial);
            }
        }
        if (colorPicker == null)
        {
            colorPicker         = gameObject.AddComponent <ColorPickerGUI>();
            colorPicker.enabled = false;
            colorPicker.SetColor(highlightMaterial.color);
            colorPicker.includeAlpha = allowAlpha;
            colorPicker.handler      = (Color c) =>
            {
                highlightMaterial.color = c;
                if (handler != null)
                {
                    handler(highlightMaterial);
                }
            };
        }
        colorPicker.WindowGUI();
    }