| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #if UNITY_2019_4_OR_NEWER
- using System;
- using UnityEditor;
- using UnityEngine;
- using UnityEditor.UIElements;
- using UnityEngine.UIElements;
- namespace YooAsset.Editor
- {
- /// <summary>
- /// 显示开关(眼睛图标)
- /// </summary>
- //[UxmlElement]
- public partial class ToggleDisplay : Toggle
- {
- private readonly VisualElement _checkbox;
- public ToggleDisplay()
- {
- _checkbox = this.Q<VisualElement>("unity-checkmark");
- RefreshIcon();
- }
- public override void SetValueWithoutNotify(bool newValue)
- {
- base.SetValueWithoutNotify(newValue);
- RefreshIcon();
- }
- #if UNITY_2021_3_OR_NEWER
- protected override void ToggleValue()
- {
- base.ToggleValue();
- RefreshIcon();
- }
- #endif
- private void RefreshIcon()
- {
- if (this.value)
- {
- var icon = EditorGUIUtility.IconContent(UIElementsIcon.VisibilityToggleOff).image as Texture2D;
- _checkbox.style.backgroundImage = icon;
- }
- else
- {
- var icon = EditorGUIUtility.IconContent(UIElementsIcon.VisibilityToggleOn).image as Texture2D;
- _checkbox.style.backgroundImage = icon;
- }
- }
- }
- }
- #endif
|