十一、Unity编辑器开发之Toggle
【摘要】
当我们需要切换一个bool值的时候通常需要用到Toggle开关,Toggle的绘制需要用到GUILayout.Toggle或EditorGUILayout.Toggle方法。
using UnityEngine;using UnityEditor; [CustomEditor(typeof(Test))]public class Te...
当我们需要切换一个bool值的时候通常需要用到Toggle开关,Toggle的绘制需要用到GUILayout.Toggle或EditorGUILayout.Toggle方法。
-
using UnityEngine;
-
using UnityEditor;
-
-
[CustomEditor(typeof(Test))]
-
public class TestEditor : Editor
-
{
-
private bool boolValue;
-
-
public override void OnInspectorGUI()
-
{
-
GUILayout.Toggle(boolValue, "开关");
-
}
-
}
上述代码表示绘制一个Toggle来表示boolValue的值。
如果需要点击Toggle开关时来切换boolValue的值,需要boolValue接收GUILayout的返回值:
-
using UnityEngine;
-
using UnityEditor;
-
-
[CustomEditor(typeof(Test))]
-
public class TestEditor : Editor
-
{
-
private bool boolValue;
-
-
public override void OnInspectorGUI()
-
{
-
boolValue = GUILayout.Toggle(boolValue, "开关");
-
}
-
}
通常我们会使用一个新的bool值来接收返回值,假如值不一样时才进行赋值:
-
using UnityEngine;
-
using UnityEditor;
-
-
[CustomEditor(typeof(Test))]
-
public class TestEditor : Editor
-
{
-
private bool boolValue;
-
-
public override void OnInspectorGUI()
-
{
-
bool newValue = GUILayout.Toggle(boolValue, "开关");
-
if (newValue != boolValue)
-
{
-
boolValue = newValue;
-
}
-
}
-
}
这样可以在赋值之前使用Undo类来记录我们的操作,当我们希望撤销操作时可以使用Ctrl+Z来撤销操作,当然Undo类的使用不在此进行介绍。
下面是GUILayout绘制Toggle的所有方法、重载:
-
public static bool Toggle (bool value, GUIContent content, GUIStyle style, params GUILayoutOption[] options);
-
public static bool Toggle (bool value, string text, GUIStyle style, params GUILayoutOption[] options);
-
public static bool Toggle (bool value, Texture image, GUIStyle style, params GUILayoutOption[] options);
-
public static bool Toggle (bool value, GUIContent content, params GUILayoutOption[] options);
-
public static bool Toggle (bool value, string text, params GUILayoutOption[] options);
-
public static bool Toggle (bool value, Texture image, params GUILayoutOption[] options);
下面是EditorGUILayout绘制Toggle的所有方法、重载:
-
public static bool Toggle (GUIContent label, bool value, GUIStyle style, params GUILayoutOption[] options);
-
public static bool Toggle (string label, bool value, GUIStyle style, params GUILayoutOption[] options);
-
public static bool Toggle (bool value, GUIStyle style, params GUILayoutOption[] options);
-
public static bool Toggle (GUIContent label, bool value, params GUILayoutOption[] options);
-
public static bool Toggle (string label, bool value, params GUILayoutOption[] options);
-
public static bool Toggle (bool value, params GUILayoutOption[] options);
-
public static bool ToggleLeft (GUIContent label, bool value, GUIStyle labelStyle, params GUILayoutOption[] options);
-
public static bool ToggleLeft (string label, bool value, GUIStyle labelStyle, params GUILayoutOption[] options);
-
public static bool ToggleLeft (GUIContent label, bool value, params GUILayoutOption[] options);
-
public static bool ToggleLeft (string label, bool value, params GUILayoutOption[] options);
文章来源: coderz.blog.csdn.net,作者:CoderZ1010,版权归原作者所有,如需转载,请联系作者。
原文链接:coderz.blog.csdn.net/article/details/116794898
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)