override protected void DrawInspectorGUI() { UIButton tTarget = target as UIButton; EditorGUILayout.Separator(); // 少し区切りスペース //------------------------------------------------------------------- // アトラススプライトの表示 DrawAtlas(tTarget); // マテリアル選択 DrawMaterial(tTarget); //------------------------------------------------------------------- EditorGUILayout.Separator(); // 少し区切りスペース UIText tLabel = EditorGUILayout.ObjectField("Label", tTarget.label, typeof(UIText), true) as UIText; if (tLabel != tTarget.label) { Undo.RecordObject(tTarget, "UIButton : Label Change"); // アンドウバッファに登録 tTarget.label = tLabel; EditorUtility.SetDirty(tTarget); } UIRichText tRichLabel = EditorGUILayout.ObjectField("RichLabel", tTarget.richLabel, typeof(UIRichText), true) as UIRichText; if (tRichLabel != tTarget.richLabel) { Undo.RecordObject(tTarget, "UIButton : Rich Label Change"); // アンドウバッファに登録 tTarget.richLabel = tRichLabel; EditorUtility.SetDirty(tTarget); } //#if TextMeshPro UITextMesh tLabelMesh = EditorGUILayout.ObjectField("LabelMesh", tTarget.labelMesh, typeof(UITextMesh), true) as UITextMesh; if (tLabelMesh != tTarget.labelMesh) { Undo.RecordObject(tTarget, "UIButton : Label Mesh Change"); // アンドウバッファに登録 tTarget.labelMesh = tLabelMesh; EditorUtility.SetDirty(tTarget); } //#endif UIImage tDisableMask = EditorGUILayout.ObjectField("DisableMask", tTarget.disableMask, typeof(UIImage), true) as UIImage; if (tDisableMask != tTarget.disableMask) { Undo.RecordObject(tTarget, "UIButton : Disable Mask Change"); // アンドウバッファに登録 tTarget.disableMask = tDisableMask; EditorUtility.SetDirty(tTarget); } bool tClickTransitionEnabled = EditorGUILayout.Toggle("Click Transition Enabled", tTarget.clickTransitionEnabled); if (tClickTransitionEnabled != tTarget.clickTransitionEnabled) { Undo.RecordObject(tTarget, "UIButton : Click Transition Enabled Change"); // アンドウバッファに登録 tTarget.clickTransitionEnabled = tClickTransitionEnabled; EditorUtility.SetDirty(tTarget); } bool tWaitForTransition = EditorGUILayout.Toggle("Wait For Transition", tTarget.waitForTransition); if (tWaitForTransition != tTarget.waitForTransition) { Undo.RecordObject(tTarget, "UIButton : Wait For Transition Change"); // アンドウバッファに登録 tTarget.waitForTransition = tWaitForTransition; EditorUtility.SetDirty(tTarget); } bool tColorTransmission = EditorGUILayout.Toggle("Color Transmission", tTarget.colorTransmission); if (tColorTransmission != tTarget.colorTransmission) { Undo.RecordObject(tTarget, "UIButton : Color Transmission Change"); // アンドウバッファに登録 tTarget.colorTransmission = tColorTransmission; EditorUtility.SetDirty(tTarget); } EditorGUILayout.Separator(); // 少し区切りスペース bool tSetPivotToCenter = EditorGUILayout.Toggle("Set Pivot To Center", tTarget.setPivotToCenter); if (tSetPivotToCenter != tTarget.setPivotToCenter) { Undo.RecordObject(tTarget, "UIButton : Set Pivot To Center Change"); // アンドウバッファに登録 tTarget.setPivotToCenter = tSetPivotToCenter; EditorUtility.SetDirty(tTarget); } }
//--------------------------------------------- /// <summary> /// ラベルを追加する /// </summary> /// <param name="tText">ラベルの文字列</param> /// <param name="tColor">ラベルのカラー</param> /// <returns>UIText のインスタンス</returns> public UIText AddLabel(string tText, uint tColor = 0xFFFFFFFF, int tFontSize = 0) { if (label == null) { label = AddView <UIText>(); } UIText tLabel = label; //---------------------------------- if (tFontSize <= 0) { tFontSize = ( int )(size.y * 0.6f); } tLabel.alignment = TextAnchor.MiddleCenter; tLabel.text = tText; Font tDefaultFont = null; int tDefaultFontSize = 0; Color tDefaultColor = ARGB(tColor); bool tDefaultShadow = false; bool tDefaultOutline = true; #if UNITY_EDITOR if (Application.isPlaying == false) { // メニューから操作した場合のみ自動設定を行う DefaultSettings tDS = Resources.Load <DefaultSettings>("uGUIHelper/DefaultSettings"); if (tDS != null) { tDefaultFont = tDS.font; tDefaultFontSize = tDS.buttonLabelFontSize; tDefaultColor = tDS.buttonLabelColor; tDefaultShadow = tDS.buttonLabelShadow; tDefaultOutline = tDS.buttonLabelOutline; } } #endif if (tDefaultFont == null) { tLabel.font = Resources.GetBuiltinResource(typeof(Font), "Arial.ttf") as Font; } else { tLabel.font = tDefaultFont; } if (tDefaultFontSize == 0) { tLabel.fontSize = tFontSize; } else { tLabel.fontSize = tDefaultFontSize; } tLabel.color = tDefaultColor; tLabel.isShadow = tDefaultShadow; tLabel.isOutline = tDefaultOutline; //---------------------------------- if (isCanvasOverlay == true) { tLabel.material = Resources.Load <Material>("uGUIHelper/Shaders/UI-Overlay-Default"); } return(tLabel); }
//------------------------------------------------------------------------------------------- // 各派生クラスでの初期化処理を行う(メニューまたは AddView から生成される場合のみ実行れる) override protected void OnBuild(string tOption = "") { InputFieldPlus tInputField = _inputField; if (tInputField == null) { tInputField = gameObject.AddComponent <InputFieldPlus>(); } if (tInputField == null) { // 異常 return; } Image tImage = _image; if (tImage != null) { tInputField.targetGraphic = tImage; } //------------------------------- bool tIsMultiLine = false; if (string.IsNullOrEmpty(tOption) == false && tOption.ToLower() == "multiline") { // マルチ tIsMultiLine = true; } Vector2 tSize = GetCanvasSize(); int tFontSize = 16; if (tSize.x > 0 && tSize.y > 0) { if (tIsMultiLine == false) { // シングル SetSize(tSize.y * 0.5f, tSize.y * 0.1f); } else { // マルチ SetSize(tSize.y * 0.5f, tSize.y * 0.5f); } tFontSize = ( int )(tSize.y * 0.1f * 0.6f); } // Image tImage.sprite = Resources.Load <Sprite>("uGUIHelper/Textures/UIDefaultFrame"); tImage.type = Image.Type.Sliced; if (isCanvasOverlay == true) { tImage.material = Resources.Load <Material>("uGUIHelper/Shaders/UI-Overlay-Default"); } ResetRectTransform(); // Text UIText tTextComponent = AddView <UIText>("Text", "SIMPLE"); tTextComponent.isContentSizeFitter = false; tTextComponent.fontSize = tFontSize; tTextComponent.supportRichText = false; tTextComponent.color = new Color32(50, 50, 50, 255); tTextComponent.SetAnchorToStretch(); tTextComponent.SetMargin(12, 12, 12, 12); // tText.position = new Vector2( 0, -2 ) ; // tText.SetSize( -24, -28 ) ; // tText.resizeTextForBestFit = true ; tInputField.textComponent = tTextComponent._text; if (tIsMultiLine == false) { tTextComponent.alignment = TextAnchor.MiddleLeft; } else { tTextComponent.alignment = TextAnchor.UpperLeft; } if (isCanvasOverlay == true) { tTextComponent.material = Resources.Load <Material>("uGUIHelper/Shaders/UI-Overlay-Default"); } // TextColorModifier tTextComponent.AddComponent <TextColorModifier>(); // Placeholder UIText tPlaceholder = AddView <UIText>("Placeholder", "SIMPLE"); tPlaceholder.fontSize = tFontSize; tPlaceholder.fontStyle = FontStyle.Italic; tPlaceholder.text = "Enter text..."; tPlaceholder.color = new Color32(50, 50, 50, 128); tPlaceholder.SetAnchorToStretch(); tPlaceholder.SetMargin(12, 12, 12, 12); // tPlaceholder.position = new Vector2( 0, -2 ) ; // tPlaceholder.SetSize( -24, -28 ) ; // tPlaceholder.resizeTextForBestFit = true ; tInputField.placeholder = tPlaceholder._text; if (tIsMultiLine == false) { tPlaceholder.alignment = TextAnchor.MiddleLeft; } else { tPlaceholder.alignment = TextAnchor.UpperLeft; } if (isCanvasOverlay == true) { tPlaceholder.material = Resources.Load <Material>("uGUIHelper/Shaders/UI-Overlay-Default"); } if (tIsMultiLine == true) { // マルチラインで生成する tInputField.lineType = InputFieldPlus.LineType.MultiLineNewline; tInputField.textComponent.horizontalOverflow = HorizontalWrapMode.Wrap; } tInputField.caretWidth = 4; tInputField.customCaretColor = true; tInputField.caretColor = Color.blue; //---------------------------------------------------------- FontFilter tFontFilter = null; char tFontAlternateCode = '?'; #if UNITY_EDITOR if (Application.isPlaying == false) { // メニューから操作した場合のみ自動設定を行う DefaultSettings tDS = Resources.Load <DefaultSettings>("uGUIHelper/DefaultSettings"); if (tDS != null) { tFontFilter = tDS.fontFilter; tFontAlternateCode = tDS.fontAlternateCode; } } #endif if (tFontFilter == null) { } else { fontFilter = tFontFilter; } if (tFontAlternateCode == 0) { fontAlternateCode = '?'; } else { fontAlternateCode = tFontAlternateCode; } }