Пример #1
0
 /// <summary>
 /// A method with default parameters.
 /// </summary>
 public void DefaultParameters <T>(bool @bool             = true, bool?no = false, bool?maybe = null,
                                   byte @byte             = byte.MaxValue, sbyte @sbyte = sbyte.MaxValue,
                                   char @char             = '\u1234', decimal @decimal  = 3.14m, double @double = double.NaN, float @float = float.NegativeInfinity,
                                   int @int               = -42, uint @uint    = 42, long @long = long.MinValue, ulong @ulong = long.MaxValue,
                                   object @object         = null, short @short = short.MinValue, ushort @ushort = ushort.MaxValue,
                                   string @string         = "hi\0'\"\\\a\b\f\n\r\t\v\u0001\uABCD", T t = default(T),
                                   DateTime @virtual      = default(DateTime),
                                   ExampleEnum @enum      = ExampleEnum.One,
                                   ExampleFlagsEnum flags = ExampleFlagsEnum.Second | ExampleFlagsEnum.Third)
 {
 }
Пример #2
0
    protected override void OnGUI()
    {
        base.OnGUI();

        pos = EditorGUILayout.BeginScrollView(pos);

        if (GUILayout.Button("这是一个按钮"))
        {
            Debug.Log("Click Button");
        }
        EditorGUILayout.LabelField("空格");
        EditorGUILayout.Separator();
        EditorGUILayout.Space();
        EditorGUILayout.LabelField("这是一个默认Lable");
        EditorGUILayout.LabelField("这是高300,宽50的Label", GUILayout.Width(300), GUILayout.Height(50));
        EditorGUILayout.LabelField("这是一个拾色器");
        EditorGUILayout.ColorField(Color.white);
        EditorGUILayout.LabelField("Bounds");
        bounds = EditorGUILayout.BoundsField(bounds);
        EditorGUILayout.LabelField("BoundsInt");
        boundsInt = EditorGUILayout.BoundsIntField(boundsInt);
        EditorGUILayout.LabelField("AnimationCurve");
        curve = EditorGUILayout.CurveField(curve);

        EditorGUILayout.LabelField("<color=#ff0000>注意比对延迟设置和直接设置的区别</color>", Style);
        EditorGUILayout.Space();

        toggle     = EditorGUILayout.Toggle("Toggle", toggle);
        toggleLeft = EditorGUILayout.ToggleLeft("ToggleLeft", toggleLeft);

        //double
        EditorGUILayout.LabelField("延迟设置" + delayedDou.ToString());
        delayedDou = EditorGUILayout.DelayedDoubleField("DelayedDouble", delayedDou);
        EditorGUILayout.LabelField("直接设置" + dou.ToString());
        dou        = EditorGUILayout.DoubleField("Double", dou);
        delayedInt = EditorGUILayout.DelayedIntField("DelayedInt", delayedInt);
        //int
        i         = EditorGUILayout.IntField("Int", i);
        sliderInt = EditorGUILayout.IntSlider(sliderInt, 0, 100);

        //text
        delayedText = EditorGUILayout.DelayedTextField("DelayedText", delayedText);
        text        = EditorGUILayout.TextField("Text", text);
        password    = EditorGUILayout.PasswordField("Password", password);
        EditorGUILayout.LabelField("TextArea");
        textArea = EditorGUILayout.TextArea(textArea);
        //float
        delayedFloat = EditorGUILayout.DelayedFloatField("DelayedFloat", delayedFloat);
        f            = EditorGUILayout.FloatField("Float", f);
        fSlider      = EditorGUILayout.Slider("FloatSlider", fSlider, 0, 10);
        fKnob        = EditorGUILayout.Knob(new Vector2(100, 100), fKnob, 0, 10, "Knob", Color.blue, Color.red, true);
        longvalue    = EditorGUILayout.LongField("Long", longvalue);

        //vector
        v2    = EditorGUILayout.Vector2Field("Vector2", v2);
        v2Int = EditorGUILayout.Vector2IntField("Vector2Int", v2Int);

        v3    = EditorGUILayout.Vector3Field("Vector3", v3);
        v3Int = EditorGUILayout.Vector3IntField("Vector3Int", v3Int);

        v4 = EditorGUILayout.Vector4Field("Vector4", v4);

        EditorGUILayout.LabelField("枚举Field");
        m_Flags = (ExampleFlagsEnum)EditorGUILayout.EnumFlagsField(m_Flags);

        EditorGUILayout.LabelField("注意两者的区别");
        m_Flags = (ExampleFlagsEnum)EditorGUILayout.EnumPopup(m_Flags);

        gradient = EditorGUILayout.GradientField("Gradient", gradient);

        go   = (GameObject)EditorGUILayout.ObjectField("GameObject", go, typeof(GameObject), true);
        clip = (AnimationClip)EditorGUILayout.ObjectField("Clip", clip, typeof(AnimationClip), true);

        EditorGUILayout.LabelField("Rect");
        rect = EditorGUILayout.RectField(rect);
        EditorGUILayout.LabelField("RectInt");
        rectInt = EditorGUILayout.RectIntField(rectInt);


        EditorGUILayout.HelpBox("这是一个信息Box", MessageType.Info);
        EditorGUILayout.HelpBox("这是一个警告Box", MessageType.Warning);
        EditorGUILayout.HelpBox("这是一个错误Box", MessageType.Error);

        EditorGUILayout.SelectableLabel("SelectableLabel");


        EditorGUILayout.EndScrollView();
    }
    void showOptionContent1()
    {
        GUILayout.Label("Base Setting", EditorStyles.boldLabel);
        m_Number = EditorGUILayout.IntSlider(m_Number, 0, 10);

        //实现一个渐隐效果的Toggle
        IsShowExtra.target = EditorGUILayout.ToggleLeft("显示一个额外的区域", IsShowExtra.target);
        //Extra block that can be toggled on and off.
        if (EditorGUILayout.BeginFadeGroup(IsShowExtra.faded))
        {
            //各种Field
            EditorGUI.indentLevel++;                   //加一层缩进
            EditorGUILayout.PrefixLabel("ColorField"); //PrefixLabel
            m_Color = EditorGUILayout.ColorField(m_Color);

            EditorGUILayout.PrefixLabel("TextField");
            m_String = EditorGUILayout.TextField(m_String);

            EditorGUILayout.PrefixLabel("EnumFlagsField");
            m_Flags = (ExampleFlagsEnum)EditorGUILayout.EnumFlagsField(m_Flags);

            EditorGUILayout.PrefixLabel("MaskField");
            flags = EditorGUILayout.MaskField("Player Flags", flags, options);

            // BoundsField
            bounds = EditorGUILayout.BoundsField("BoundsField", bounds); //??不理解这个是干嘛的
            EditorGUI.indentLevel--;                                     //还原缩进

            op = (OPTIONS)EditorGUILayout.EnumPopup("Primitive to create:", op);
        }
        EditorGUILayout.EndFadeGroup();

        //toggle group
        groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Setting", groupEnabled);
        pos[0]       = EditorGUILayout.Toggle("x", pos[0]);
        pos[1]       = EditorGUILayout.Toggle("y", pos[1]);
        pos[2]       = EditorGUILayout.Toggle("z", pos[2]);
        myFloat      = EditorGUILayout.Slider("Slider", myFloat, -3, 3);
        EditorGUILayout.EndToggleGroup();

        //DropdownButton用法
        if (EditorGUILayout.DropdownButton(new GUIContent("Click and Drop"), FocusType.Keyboard))
        {
            var alls = new string[4] {
                "A", "B", "C", "D"
            };
            GenericMenu _menu = new GenericMenu();
            foreach (var item in alls)
            {
                if (string.IsNullOrEmpty(item))
                {
                    continue;
                }
                //添加菜单
                _menu.AddItem(new GUIContent(item), item == selectItem, OnClickDropdownButton, item);
            }
            _menu.ShowAsContext();//显示菜单
        }


        //折叠栏
        bFoldOut = EditorGUILayout.Foldout(bFoldOut, status);
        if (bFoldOut)
        {
            if (Selection.activeTransform)
            {
                Selection.activeTransform.position =
                    EditorGUILayout.Vector3Field("Position", Selection.activeTransform.position);
                status = Selection.activeTransform.name;
            }
        }

        if (!Selection.activeTransform)
        {
            status   = "Select a GameObject";
            bFoldOut = false;
        }
    }