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); }
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); }
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; } }
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(); }