初始化

This commit is contained in:
come
2025-07-26 16:56:42 +08:00
parent 8291dbb91c
commit fa81439a8c
2574 changed files with 328492 additions and 2170 deletions

View File

@@ -0,0 +1,15 @@
using Cysharp.Threading.Tasks;
namespace YIUIFramework
{
public abstract partial class BaseWindow : UIBase
{
/// <summary>
/// 窗口选项
/// 最后由Panel View重写
/// 实现各种配置
/// 如非必要 所有属性判断可以直接去HasFlag分类中获取 不要直接判断这个
/// </summary>
public virtual EWindowOption WindowOption => EWindowOption.None;
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 9f14db4037054efbb1e410c94f6f70e7
timeCreated: 1683798125

View File

@@ -0,0 +1,74 @@
using Cysharp.Threading.Tasks;
namespace YIUIFramework
{
//动画
public abstract partial class BaseWindow
{
private bool m_FirstOpenTween;
internal async UniTask InternalOnWindowOpenTween(bool tween = true)
{
OnOpenTweenStart();
if (tween && !WindowBanRepetitionOpenTween || !m_FirstOpenTween)
{
m_FirstOpenTween = true;
if (WindowBanAwaitOpenTween)
{
SealedOnWindowOpenTween().Forget();
}
else
{
await SealedOnWindowOpenTween();
}
}
else
{
OnOpenTweenEnd();
}
}
private bool m_FirstCloseTween;
internal async UniTask InternalOnWindowCloseTween(bool tween = true)
{
OnCloseTweenStart();
if (tween && !WindowBanRepetitionCloseTween || !m_FirstCloseTween)
{
m_FirstCloseTween = true;
if (WindowBanAwaitCloseTween)
{
SealedOnWindowCloseTween().Forget();
}
else
{
await SealedOnWindowCloseTween();
}
}
else
{
OnCloseTweenEnd();
}
}
//由子类实现密封Async 调用End
protected abstract UniTask SealedOnWindowOpenTween();
//任何UI可重写打开与关闭动画
protected abstract UniTask OnOpenTween();
//有可能没有动画 也有可能动画被跳过 反正无论如何都会有动画结束回调
protected abstract void OnOpenTweenStart();
protected abstract void OnOpenTweenEnd();
protected abstract UniTask SealedOnWindowCloseTween();
protected abstract UniTask OnCloseTween();
protected abstract void OnCloseTweenStart();
protected abstract void OnCloseTweenEnd();
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a2c237ed64024a4db33268ab930c344d
timeCreated: 1689324285

View File

@@ -0,0 +1,62 @@
namespace YIUIFramework
{
//窗口选项值 根据需求以下都可以重写 可动态改变值
//所有窗口选项的属性
//可快捷操作
//亦可重写后根据需求动态调整
public abstract partial class BaseWindow
{
/// <summary>
/// 当打开的参数不一致时
/// 是否可以使用基础Open
/// 如果允许 别人调用open了一个不存在的Open参数时
/// 也可以使用默认的open打开界面 则你可以改为true
/// </summary>
public virtual bool WindowCanUseBaseOpen => WindowOption.HasFlag(EWindowOption.CanUseBaseOpen);
/// <summary>
/// 禁止使用ParamOpen
/// </summary>
public virtual bool WindowBanParamOpen => WindowOption.HasFlag(EWindowOption.BanParamOpen);
/// <summary>
/// 我有其他IOpen时 允许用open
/// 默认fasle 我有其他iopen接口时 是不允许使用open的
/// </summary>
public virtual bool WindowHaveIOpenAllowOpen => WindowOption.HasFlag(EWindowOption.HaveIOpenAllowOpen);
//先开
public virtual bool WindowFirstOpen => WindowOption.HasFlag(EWindowOption.FirstOpen);
//后关
public virtual bool WindowLastClose => WindowOption.HasFlag(EWindowOption.LastClose);
//禁止动画
public virtual bool WindowBanTween => WindowOption.HasFlag(EWindowOption.BanTween);
//打开动画不可重复播放
public virtual bool WindowBanRepetitionOpenTween => WindowOption.HasFlag(EWindowOption.BanRepetitionOpenTween);
//关闭动画不可重复播放
public virtual bool WindowBanRepetitionCloseTween =>
WindowOption.HasFlag(EWindowOption.BanRepetitionCloseTween);
//不等待打开动画
public virtual bool WindowBanAwaitOpenTween => WindowOption.HasFlag(EWindowOption.BanAwaitOpenTween);
//不等待关闭动画
public virtual bool WindowBanAwaitCloseTween => WindowOption.HasFlag(EWindowOption.BanAwaitCloseTween);
//我关闭时跳过其他的打开动画
public virtual bool WindowSkipOtherOpenTween => WindowOption.HasFlag(EWindowOption.SkipOtherOpenTween);
//我打开时跳过其他的关闭动画
public virtual bool WindowSkipOtherCloseTween => WindowOption.HasFlag(EWindowOption.SkipOtherCloseTween);
//Home时 跳过我自己的打开动画
public virtual bool WindowSkipHomeOpenTween => WindowOption.HasFlag(EWindowOption.SkipHomeOpenTween);
//播放动画时 可以操作 默认播放动画的时候是不能操作UI的 不然容易出问题
public virtual bool WindowAllowOptionByTween => WindowOption.HasFlag(EWindowOption.AllowOptionByTween);
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 70c82cb8ac4c4c218f74929ef32f8a8b
timeCreated: 1689324378

View File

@@ -0,0 +1,49 @@
using Cysharp.Threading.Tasks;
namespace YIUIFramework
{
//打开关闭
public abstract partial class BaseWindow
{
//打开有3种
//1 无参打开 OnOpen
//2 ParamVo参数打开 也叫 ParamOpen 打开内部是List<obj>参数 所以可以支持无限长度
//3 继承接口IOpen的 也叫 IOpen 打开 最高支持5个泛型参数
//前2种都会自带 第三种根据需求自己继承
/// <summary>
/// 打开UI 无参
/// </summary>
protected virtual async UniTask<bool> OnOpen()
{
await UniTask.CompletedTask;
return true;
}
/// <summary>
/// 打开UI 带参数的
/// 需要自己解析参数
/// 适合用字符串开启的 参数可字符串配置那种
/// 默认会调用onopen
/// </summary>
protected virtual async UniTask<bool> OnOpen(ParamVo param)
{
return await OnOpen();
}
internal void OnWindowClose()
{
OnClose();
}
/// <summary>
/// UI被关闭
/// 与OnDisable 不同 Disable 只是显影操作不代表被关闭
/// 与OnDestroy 不同 Destroy 是摧毁 但是因为有缓存界面的原因 当被缓存时 OnDestroy是不会来的
/// 这个时候你想要知道是不是被关闭了就必须通过OnClose
/// baseView除外 因为view的关闭就是隐藏 所以 view的 OnDisable = OnClose
/// </summary>
protected virtual void OnClose()
{
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: e8bd7dfdf2474fa2917685125f966d17
timeCreated: 1689324334