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);
            }
        }
Beispiel #2
0
        //---------------------------------------------

        /// <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);
        }
Beispiel #3
0
        //-------------------------------------------------------------------------------------------

        // 各派生クラスでの初期化処理を行う(メニューまたは 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;
            }
        }