Unity SKFramework框架(二)、UI模块

2022-08-29 17:04:03 浏览数 (1)

一、核心属性

1.UI Canvas 画布

代码语言:javascript复制
using UnityEngine;
using SK.Framework;

public class Example : MonoBehaviour
{
    private void Start()
    {
        Canvas uiCanvas = UI.Canvas;
    }
}

2.UI Resolution 分辨率

代码语言:javascript复制
using UnityEngine;
using SK.Framework;

public class Example : MonoBehaviour
{
    private void Start()
    {
        Vector2 uiResolution = UI.Resolution;
    }
}

3.UI Camera 相机

代码语言:javascript复制
using UnityEngine;
using SK.Framework;

public class Example : MonoBehaviour
{
    private void Start()
    {
        Camera uiCamera = UI.Camera;
    }
}
代码语言:javascript复制
二、UIView 视图

1.ViewLevel 视图层级

视图默认被分为以上层级,也可以通过更改该枚举实现自定义层级结构,当UI模块初始化时,系统会根据该枚举中包含的字段自动创建视图层级:

2.创建视图

以一个首页视图为例,创建脚本HomeView,继承UIView视图基类:

代码语言:javascript复制
using SK.Framework;
public class HomeView : UIView {}

将脚本挂载到视图预制体上,并将预制体放到Resources文件夹内:

3.Load 加载视图

代码语言:javascript复制
using UnityEngine;
using SK.Framework;

public class Example : MonoBehaviour
{
    private void Start()
    {
        HomeView homeView = UIView.Load<HomeView>();
    }
}

Load函数不传入任何参数表示根据视图的类型名称作为资源路径进行加载,并且将其视图层级默认设置为ViewLevel.COMMON。重载函数如下:

4.Show 显示视图

代码语言:javascript复制
using UnityEngine;
using SK.Framework;

public class Example : MonoBehaviour
{
    private void Start()
    {
        UIView.Show<HomeView>();
    }
}
代码语言:javascript复制
同样的,不传入视图名称则表示根据视图类型的名称进行显示:

5.Hide 隐藏视图

代码语言:javascript复制
using UnityEngine;
using SK.Framework;

public class Example : MonoBehaviour
{
    private void Start()
    {
        UIView.Hide<HomeView>();
    }
}

6.Unload 卸载视图

代码语言:javascript复制
using UnityEngine;
using SK.Framework;

public class Example : MonoBehaviour
{
    private void Start()
    {
        UIView.Unload<HomeView>();
    }
}

使用UnloadAll函数可以卸载所有已加载的视图

代码语言:javascript复制
 UIView.UnloadAll();
代码语言:javascript复制
三、AnimationEvent 动画事件

动画事件分为OnVisible和OnInvisible,当视图加载和显示时,使用OnVisible动画事件,当视图隐藏和卸载时,使用OnInvisible动画事件:

动画事件分为动画的播放、UnityEvent事件的执行和声音的播放

1.Animation 视图动画

视图动画分为两种,一种是Tween类型动画,依赖DoTween插件。

另一种是Animator类型动画,只需要记录动画状态State的名称。

Tween类型动画中,Main表示该视图的整体动画,也可以为该视图下的UI元素添加动画,通过拖拽UI元素到“Drop Animation Element Here”区域实现添加:

四个开关分别表示移动动画、旋转动画、缩放动画、透明度动画的开关:

Tween动画的核心参数:

Duration 动画时长

Delay 延时时长

From 初始值

To 目标值

2.UnityEvent 事件

OnBegan表示动画开始时要执行的Unity Event事件,OnEnd表示动画结束时要执行的Unity Event事件:

3.Sound 声音

BeginSound表示动画开始时要播放的声音,EndSound表示动画结束时要播放的声音。From表示声音的来源,分为两种类型:1.AudioClip 直接来源于AudioClip资产;2.Database 表示声音来源于音频库,需要选择音频库的名称和音频数据。

0 人点赞