一、制作UI预设体
1.创建预设体
首先在Hierarchy中创建Canvas,命名为SampleWindow
之后再为Window添加CanvasGroup组件,用于控制Window的淡入和淡出
2.添加UIMask
创建一个Image,命名为UIMask
将Image中的Color设为黑色,透明度设为100
添加CanvasGroup组件,用于控制遮罩的淡入和淡出
设置RectTransform组件的Width和Height分别为3000和2000,用于将遮罩覆盖整个Window
3.添加UIContent
创建一个Panel,命名为UIContent,在该对象内部添加Button和Text
Button对象的命名要有[Button]标签,该标签用于代码生成脚本
同理Text对象的命名要有[Text]标签
二、生成组件脚本
1.生成组件数据脚本
右键SampleWindow对象,点击生成组件数据脚本,弹出一个Editor窗口
在该窗口中可以查看到UI组件的绑定内容,以及设置脚本的生成路径
点击生成脚本,即可在该目录下自动创建按钮数据脚本
2.生成Window脚本
右键SampleWindow对象,点击生成Window脚本,弹出一个Editor窗口
在该窗口中可以查看到Window面板的生命周期、按钮绑定事件,以及设置脚本的生成路径
点击生成脚本,即可在该目录下自动创建Window脚本,并且为Window对象自动添加组件并绑定UI控件
最后把生成的SampleWindow对象缓存至Resources/Window文件夹下,即可通过代码控制Window
三、操作UI
在场景中任创建ZMUIMain脚本和游戏对象
在脚本中首先在Awake中初始化UIModule,再通过其它的生命周期函数就可以操作UI了
public class ZMUIMain : MonoBehaviour
{
private void Awake()
{
UIModule.Instance.Initialize();
}
void Start()
{
UIModule.Instance.PreLoadWindow<SampleWindow>();
}
public void Update()
{
if (Input.GetKeyDown(KeyCode.Q))
{
UIModule.Instance.PopUpWindow<SampleWindow>();
}
}
}