using System.Collections.Generic;
using UnityEngine;
public class 单选控件 : MonoBehaviour
{
/*单选“控件”本质上仍然是通过协同管理多个Toggle控件来实现的*/
#region 内部类型
[System.Serializable]
public sealed class ToggleInfo
{
public string content;
public Vector2 size;
}
public enum Direction
{
Horizontal,
Vertical
}
#endregion
public List<ToggleInfo> toggles;
public Vector2 startPosition;
public int spacing;
public Direction m_direction;
private int selectedIndex = 0;
private void OnGUI()
{
float posX = startPosition.x;
float posY = startPosition.y;
for (int i = 0; i < toggles.Count; i++)
{
Rect rect = new Rect(posX, posY, toggles[i].size.x, toggles[i].size.y);
if (GUI.Toggle(rect, selectedIndex == i, toggles[i].content))
{
selectedIndex = i;
}
switch (m_direction)
{
case Direction.Horizontal:
posX += (toggles[i].size.x + spacing);
break;
case Direction.Vertical:
posY += (toggles[i].size.y + spacing);
break;
}
}
}
}
试着自己实现了一个简易好用的单选控件