您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
50 行
1.2 KiB
50 行
1.2 KiB
using UnityEngine.UI;
|
|
|
|
namespace UnityEngine.Experimental.Rendering.UI
|
|
{
|
|
[ExecuteInEditMode]
|
|
public class UIFoldout : Toggle
|
|
{
|
|
public GameObject content;
|
|
public GameObject arrowOpened;
|
|
public GameObject arrowClosed;
|
|
|
|
protected override void Start()
|
|
{
|
|
base.Start();
|
|
onValueChanged.AddListener(SetState);
|
|
SetState(isOn);
|
|
}
|
|
|
|
#pragma warning disable 108,114
|
|
void OnValidate()
|
|
{
|
|
SetState(isOn, false);
|
|
}
|
|
|
|
#pragma warning restore 108,114
|
|
|
|
public void SetState(bool state)
|
|
{
|
|
SetState(state, true);
|
|
}
|
|
|
|
public void SetState(bool state, bool rebuildLayout)
|
|
{
|
|
if (arrowOpened == null || arrowClosed == null || content == null)
|
|
return;
|
|
|
|
if (arrowOpened.activeSelf != state)
|
|
arrowOpened.SetActive(state);
|
|
|
|
if (arrowClosed.activeSelf == state)
|
|
arrowClosed.SetActive(!state);
|
|
|
|
if (content.activeSelf != state)
|
|
content.SetActive(state);
|
|
|
|
if (rebuildLayout)
|
|
LayoutRebuilder.ForceRebuildLayoutImmediate(transform.parent as RectTransform);
|
|
}
|
|
}
|
|
}
|