public void GuiFunc(int winId) { int iFontSize = gsLabel.fontSize; Rect rectItem = new Rect(iFontSize * 0.5f, iFontSize * 0.5f, iFontSize, rect.width - iFontSize * 3); float fTmp; fTmp = GUI.VerticalSlider(rectItem, fCurve[1], 1f, 0f); if (fTmp != fCurve[1]) { fCurve[1] = fTmp; sValues[1] = fTmp.ToString(); } rectItem.x = rect.width - rectItem.width - iFontSize * 0.5f; fTmp = GUI.VerticalSlider(rectItem, fCurve[3], 1f, 0f); if (fTmp != fCurve[3]) { fCurve[3] = fTmp; sValues[3] = fTmp.ToString(); } rectItem.x = rectItem.width + iFontSize * 0.5f; rectItem.width = rectItem.height; GUI.DrawTexture(rectItem, texture); rectItem.x = iFontSize * 0.5f; rectItem.width = (rect.width - iFontSize) / 2f; rectItem.y += rectItem.height; rectItem.height = iFontSize * 1.5f; string sTmp = Util.DrawTextFieldF(rectItem, sValues[1], gsText); if (sTmp != sValues[1]) { if (float.TryParse(sTmp, out fTmp)) { fCurve[1] = Mathf.Clamp01(fTmp); sTmp = fCurve[1].ToString(); } sValues[1] = sTmp; } rectItem.x += rectItem.width; sTmp = Util.DrawTextFieldF(rectItem, sValues[3], gsText); if (sTmp != sValues[3]) { if (float.TryParse(sTmp, out fTmp)) { fCurve[3] = Mathf.Clamp01(fTmp); sTmp = fCurve[3].ToString(); } sValues[3] = sTmp; } // rectItem.x = iFontSize * 0.5f; rectItem.width = iFontSize * 4; rectItem.y += rectItem.height + fMargin; GUI.Label(rectItem, "Start", gsLabel); rectItem.width = rect.width - rectItem.width - iFontSize; rectItem.x = rect.width - rectItem.width - iFontSize * 0.5f; sTmp = Util.DrawTextFieldF(rectItem, sValues[0], gsText); if (sTmp != sValues[0]) { if (float.TryParse(sTmp, out fTmp)) { fCurve[0] = fTmp; } sValues[0] = sTmp; } float fMax = narrowSlider ? 1f : 10f; rectItem.x = iFontSize * 0.5f; rectItem.width = rect.width - iFontSize * 3; rectItem.y += rectItem.height; fTmp = GUI.HorizontalSlider(rectItem, fCurve[0], -fMax, fMax); if (fTmp != fCurve[0]) { fCurve[0] = fTmp; sValues[0] = fTmp.ToString(); } rectItem.x += rectItem.width; rectItem.width = iFontSize * 2; if (GUI.Button(rectItem, ConstantValues.GUIBUTTON_DEF, gsButton)) { fCurve[0] = 1f; sValues[0] = fCurve[0].ToString(); } rectItem.x = iFontSize * 0.5f; rectItem.width = iFontSize * 4; rectItem.y += rectItem.height + fMargin; GUI.Label(rectItem, "End", gsLabel); rectItem.width = rect.width - rectItem.width - iFontSize; rectItem.x = rect.width - rectItem.width - iFontSize * 0.5f; sTmp = Util.DrawTextFieldF(rectItem, sValues[2], gsText); if (sTmp != sValues[2]) { if (float.TryParse(sTmp, out fTmp)) { fCurve[2] = fTmp; } sValues[2] = sTmp; } rectItem.x = iFontSize * 0.5f; rectItem.width = rect.width - iFontSize * 3; rectItem.y += rectItem.height; fTmp = GUI.HorizontalSlider(rectItem, fCurve[2], -fMax, fMax); if (fTmp != fCurve[2]) { fCurve[2] = fTmp; sValues[2] = fTmp.ToString(); } rectItem.x += rectItem.width; rectItem.width = iFontSize * 2; if (GUI.Button(rectItem, ConstantValues.GUIBUTTON_DEF, gsButton)) { fCurve[2] = 1f; sValues[2] = fCurve[2].ToString(); } rectItem.width = iFontSize * 5f; rectItem.x = iFontSize * 0.5f; rectItem.y += rectItem.height + fMargin; if (GUI.Button(rectItem, isGuiTranslation ? (narrowSlider ? "幅を広く" : "幅を狭く") : (narrowSlider ? "Broad" : "Narrow"), gsButton)) { narrowSlider = !narrowSlider; } rectItem.x = rect.width - iFontSize * 5.5f; if (GUI.Button(rectItem, isGuiTranslation ? "全値反転" : "Reverse", gsButton)) { fCurve[1] = 1f - fCurve[1]; sValues[1] = fCurve[1].ToString(); fCurve[3] = 1f - fCurve[3]; sValues[3] = fCurve[3].ToString(); fCurve[0] *= -1; sValues[0] = fCurve[0].ToString(); fCurve[2] *= -1; sValues[2] = fCurve[2].ToString(); } float fHeight = rectItem.y + rectItem.height + fMargin; if (rect.height != fHeight) { Rect rectTmp = new Rect(rect.x, rect.y - fHeight, rect.width, fHeight); rect = rectTmp; } else if (rect.x < 0f) { Rect rectTmp = new Rect(fRightPos, rect.y, rect.width, rect.height); rect = rectTmp; } else if (rect.y < 0f) { Rect rectTmp = new Rect(rect.x, fUpPos, rect.width, rect.height); rect = rectTmp; } if (GUI.changed) { CreateCurve(); func(curve); } GUI.DragWindow(); if (GetAnyMouseButtonDown()) { Vector2 v2Tmp = new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y); if (!rect.Contains(v2Tmp)) { func(curve); show = false; } } }