private void DoColorMenu(int winID) { float margin = FixPx(marginPx); float fontSize = FixPx(fontPx); float itemHeight = FixPx(itemHeightPx); Rect scrollRect = new Rect(margin, (itemHeight + margin) * 2, winRect.width - margin * 3, winRect.height - (itemHeight + margin) * 4); Rect conRect = new Rect(0, 0, scrollRect.width - 20, 0); Rect outRect = new Rect(margin, 0, winRect.width - margin * 2, itemHeight); GUIStyle lStyle = "label"; GUIStyle bStyle = "button"; GUIStyle tStyle = "toggle"; Color color = new Color(1f, 1f, 1f, 0.98f); lStyle.fontSize = FixPx(fontPx); lStyle.normal.textColor = color; bStyle.fontSize = FixPx(fontPx); bStyle.normal.textColor = color; tStyle.fontSize = FixPx(fontPx); tStyle.normal.textColor = color; GUI.Label(outRect, "強制カラーチェンジ:" + currentSlotname, lStyle); outRect.y += itemHeight + margin; List<Material> materialList = GetMaterials(currentSlotname); if (GUI.Button(outRect, "テクスチャ変更", bStyle)) { textureFile = new Dictionary<int, Dictionary<string, string>>(); for (int i = 0; i < materialList.Count(); i++) { textureFile.Add(i, new Dictionary<string, string>()); foreach (string propName in propNames) { textureFile[i].Add(propName, ""); } } menuType = MenuType.Texture; } outRect.y = 0; outRect.width -= margin * 2 + 20; if (materialList != null) { conRect.height += (itemHeight + margin) * materialList.Count * 31 + margin; scrollViewVector = GUI.BeginScrollView(scrollRect, scrollViewVector, conRect); for (int i = 0; i < materialList.Count(); i++) { Material material = materialList[i]; outRect.x = margin; GUI.Label(outRect, material.name, lStyle); outRect.x += margin; outRect.width = conRect.width - margin * 3; outRect.y += itemHeight + margin; int renderQueue = material.renderQueue; renderQueue = (int)drawModValueSlider(outRect, renderQueue, 0, 5000, String.Format("{0}:{1}", "RQ", material.renderQueue), lStyle); material.SetFloat("_SetManualRenderQueue", renderQueue); material.renderQueue = renderQueue; outRect.y += itemHeight + margin; GUI.Label(outRect, "Color", lStyle); outRect.y += itemHeight + margin; Color sColor = material.GetColor("_Color"); sColor.r = drawModValueSlider(outRect, sColor.r, 0f, 2f, String.Format("{0}:{1:F2}", "R", sColor.r), lStyle); outRect.y += itemHeight + margin; sColor.g = drawModValueSlider(outRect, sColor.g, 0f, 2f, String.Format("{0}:{1:F2}", "G", sColor.g), lStyle); outRect.y += itemHeight + margin; sColor.b = drawModValueSlider(outRect, sColor.b, 0f, 2f, String.Format("{0}:{1:F2}", "B", sColor.b), lStyle); outRect.y += itemHeight + margin; sColor.a = drawModValueSlider(outRect, sColor.a, 0f, 1f, String.Format("{0}:{1:F2}", "A", sColor.a), lStyle); outRect.y += itemHeight + margin; Color shadowColor = material.GetColor("_ShadowColor"); if (shadowColor != null) { GUI.Label(outRect, "Shadow Color", lStyle); outRect.y += itemHeight + margin; shadowColor.r = drawModValueSlider(outRect, shadowColor.r, 0f, 2f, String.Format("{0}:{1:F2}", "R", shadowColor.r), lStyle); outRect.y += itemHeight + margin; shadowColor.g = drawModValueSlider(outRect, shadowColor.g, 0f, 2f, String.Format("{0}:{1:F2}", "G", shadowColor.g), lStyle); outRect.y += itemHeight + margin; shadowColor.b = drawModValueSlider(outRect, shadowColor.b, 0f, 2f, String.Format("{0}:{1:F2}", "B", shadowColor.b), lStyle); outRect.y += itemHeight + margin; shadowColor.a = drawModValueSlider(outRect, shadowColor.a, 0f, 1f, String.Format("{0}:{1:F2}", "A", shadowColor.a), lStyle); outRect.y += itemHeight + margin; } Color outlineColor = material.GetColor("_OutlineColor"); if (outlineColor != null) { GUI.Label(outRect, "Outline Color", lStyle); outRect.y += itemHeight + margin; outlineColor.r = drawModValueSlider(outRect, outlineColor.r, 0f, 2f, String.Format("{0}:{1:F2}", "R", outlineColor.r), lStyle); outRect.y += itemHeight + margin; outlineColor.g = drawModValueSlider(outRect, outlineColor.g, 0f, 2f, String.Format("{0}:{1:F2}", "G", outlineColor.g), lStyle); outRect.y += itemHeight + margin; outlineColor.b = drawModValueSlider(outRect, outlineColor.b, 0f, 2f, String.Format("{0}:{1:F2}", "B", outlineColor.b), lStyle); outRect.y += itemHeight + margin; outlineColor.a = drawModValueSlider(outRect, outlineColor.a, 0f, 1f, String.Format("{0}:{1:F2}", "A", outlineColor.a), lStyle); outRect.y += itemHeight + margin; } Color rimColor = material.GetColor("_RimColor"); if (rimColor != null) { GUI.Label(outRect, "Rim Color", lStyle); outRect.y += itemHeight + margin; rimColor.r = drawModValueSlider(outRect, rimColor.r, 0f, 2f, String.Format("{0}:{1:F2}", "R", rimColor.r), lStyle); outRect.y += itemHeight + margin; rimColor.g = drawModValueSlider(outRect, rimColor.g, 0f, 2f, String.Format("{0}:{1:F2}", "G", rimColor.g), lStyle); outRect.y += itemHeight + margin; rimColor.b = drawModValueSlider(outRect, rimColor.b, 0f, 2f, String.Format("{0}:{1:F2}", "B", rimColor.b), lStyle); outRect.y += itemHeight + margin; rimColor.a = drawModValueSlider(outRect, rimColor.a, 0f, 1f, String.Format("{0}:{1:F2}", "A", rimColor.a), lStyle); outRect.y += itemHeight + margin; } float? shininess = material.GetFloat("_Shininess"); if (shininess != null) { GUI.Label(outRect, "Shininess", lStyle); outRect.y += itemHeight + margin; shininess = drawModValueSlider(outRect, (float)shininess, 0f, 10f, String.Format(" {0:F2}", (float)shininess), lStyle); outRect.y += itemHeight + margin; } float? outlineWidth = material.GetFloat("_OutlineWidth"); if (outlineWidth != null) { GUI.Label(outRect, "OutlineWidth", lStyle); outRect.y += itemHeight + margin; outlineWidth = drawModValueSlider(outRect, (float)outlineWidth, 0f, 0.1f, String.Format(" {0:F5}", (float)outlineWidth), lStyle); outRect.y += itemHeight + margin; } float? rimPower = material.GetFloat("_RimPower"); if (rimPower != null) { GUI.Label(outRect, "RimPower", lStyle); outRect.y += itemHeight + margin; rimPower = drawModValueSlider(outRect, (float)rimPower, 0f, 100f, String.Format(" {0:F2}", (float)rimPower), lStyle); outRect.y += itemHeight + margin; } float? rimShift = material.GetFloat("_RimShift"); if (rimShift != null) { GUI.Label(outRect, "RimShift", lStyle); outRect.y += itemHeight + margin; rimShift = drawModValueSlider(outRect, (float)rimShift, 0f, 5f, String.Format(" {0:F2}", (float)rimShift), lStyle); outRect.y += itemHeight + margin; } string sharderName = material.shader.name; try { Shader mShader = material.shader; if (!InitialShaders.ContainsKey(material.name)) { if (mShader.name == "Hidden/InternalErrorShader") { InitialShaders.Add(material.name, null); } else { InitialShaders.Add(material.name, mShader); } } if (sColor.a < 1f) { if (sharderName.Contains("Outline")) { Shader shader = Shader.Find(sharderName.Replace("Outline", "Trans")); if (shader == null) { shader = Shader.Find("CM3D2/Toony_Lighted_Trans"); } material.shader = shader; } } else { material.shader = InitialShaders[material.name]; } } catch (Exception e) { DebugLog(e.StackTrace); } material.SetColor("_Color", sColor); if (shadowColor != null) material.SetColor("_ShadowColor", shadowColor); if (outlineColor != null) material.SetColor("_OutlineColor", outlineColor); if (rimColor != null) material.SetColor("_RimColor", rimColor); if (shininess != null) material.SetFloat("_Shininess", (float)shininess); if (outlineWidth != null) material.SetFloat("_OutlineWidth", (float)outlineWidth); if (rimPower != null) material.SetFloat("_RimPower", (float)rimPower); if (rimShift != null) material.SetFloat("_RimShift", (float)rimShift); outRect.y += margin * 3; } GUI.EndScrollView(); } outRect.x = margin; outRect.y = winRect.height - (itemHeight + margin) * 2; outRect.width = winRect.width - margin * 2; if (GUI.Button(outRect, "menu/mate保存", bStyle)) { TBody body = maid.body0; List<TBodySkin> goSlot = body.goSlot; int index = (int)global::TBody.hashSlotName[Slotnames[currentSlotname]]; global::TBodySkin tBodySkin = goSlot[index]; GameObject obj = tBodySkin.obj; if (obj == null) { return; } MaidProp prop = maid.GetProp(Slotnames[currentSlotname].ToLower()); if (prop != null) { targetMenuInfo = new MenuInfo(); if (targetMenuInfo.LoadMenufile(prop.strFileName)) { showSaveDialog = true; } } } outRect.y += itemHeight + margin; if (GUI.Button(outRect, "閉じる", bStyle)) { menuType = MenuType.Main; } GUI.DragWindow(); }