初始化

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,3 @@
fileFormatVersion: 2
guid: 13b1b428c583478b88e85cff6663d5dc
timeCreated: 1681899208

View File

@@ -0,0 +1,75 @@
using Sirenix.OdinInspector;
namespace YIUIFramework
{
//不要修改值 否则已存在的界面会错误
//只能新增 不允许修改
/// <summary>
/// 层级类型
/// </summary>
[LabelText("层级类型")]
public enum EPanelLayer
{
/// <summary>
/// 最高层
/// 一般新手引导之类的
/// </summary>
[LabelText("最高层")]
Top = 0,
/// <summary>
/// 提示层
/// 一般 提示飘字 确认弹窗 跑马灯之类的
/// </summary>
[LabelText("提示层")]
Tips = 1,
/// <summary>
/// 弹窗层
/// 一般是非全屏界面,可同时存在的
/// </summary>
[LabelText("弹窗层")]
Popup = 2,
/// <summary>
/// 普通面板层
/// 全屏界面 所有Panel打开关闭受回退功能影响
/// </summary>
[LabelText("面板层")]
Panel = 3,
/// <summary>
/// 场景层
/// 比如 血条飘字不是做在3D时 用2D实现时的层
/// 比如 头像 ...
/// </summary>
[LabelText("场景层")]
Scene = 4,
/// <summary>
/// 最低层
/// 要显示的这个就是最低的层级
/// </summary>
[LabelText("最低层")]
Bottom = 5,
/// <summary>
/// 缓存层 需要缓存的暂存的丢这里
/// 这个界面不做显示 会被强制隐藏的
/// </summary>
[LabelText("")]
Cache = 6,
/// <summary>
/// 只是用来记录数量,不可用
/// </summary>
[LabelText("")]
Count = 7,
/// <summary>
/// 所有层,不可用
/// </summary>
[LabelText("")]
Any = 8,
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 3cd50e5bf988429898fcc02e31f2770f
timeCreated: 1681899230

View File

@@ -0,0 +1,43 @@
using System;
using Sirenix.OdinInspector;
namespace YIUIFramework
{
//不要修改值 否则已存在的界面会错误
//只能新增 不允许修改
[LabelText("界面选项")]
[Flags]
public enum EPanelOption
{
[LabelText("无")]
None = 0,
[LabelText("容器类界面")]
Container = 1, //比如伤害飘字 此类界面如果做到panel层会被特殊处理 建议还是不要放到panel层
[LabelText("永久缓存界面")]
ForeverCache = 1 << 1, //永远不会被摧毁 与禁止关闭不同这个可以关闭 只是不销毁 也可相当于无限长的倒计时
[LabelText("倒计时缓存界面")]
TimeCache = 1 << 2, //被关闭后X秒之后在摧毁 否则理解摧毁
[LabelText("禁止关闭的界面")]
DisClose = 1 << 3, //是需要一直存在的你可以隐藏 但是你不能摧毁
[LabelText("忽略返回 返回操作会跳过这个界面")]
IgnoreBack = 1 << 4, //他的打开与关闭不会触发返回功能 堆栈功能
}
public static class PanelOptionExt
{
public static void Set(ref this EPanelOption owner, EPanelOption option)
{
owner |= option;
}
public static void Unset(ref this EPanelOption owner, EPanelOption option)
{
owner &= (~option);
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: cf78d918fc24422d9300f7508a6b9feb
timeCreated: 1681898532

View File

@@ -0,0 +1,25 @@
using Sirenix.OdinInspector;
namespace YIUIFramework
{
//不要修改值 否则已存在的界面会错误
//只能新增 不允许修改
/// <summary>
/// Panel堆栈操作
/// </summary>
[LabelText("堆栈操作")]
public enum EPanelStackOption
{
[LabelText("不操作 就叠加管理")]
None = 0,
[LabelText("显隐 不会触发动画")]
Visible = 1,
[LabelText("显隐 会触发动画")]
VisibleTween = 2, //堆栈逻辑中没有关闭逻辑都是隐藏 一个会触发动画一个不会 这个会触发关闭动画
[LabelText("省略 忽略 排除")]
Omit = 3, //当他打开其他界面时 自己会被关闭 且不进入堆栈 自己被关闭时 会触发堆栈
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a29970e8ab1145419ce0d9d7e630fc65
timeCreated: 1681899358

View File

@@ -0,0 +1,22 @@
using Sirenix.OdinInspector;
namespace YIUIFramework
{
//不要修改值 否则已存在的界面会错误
//只能新增 不允许修改
/// <summary>
/// View堆栈操作
/// </summary>
[LabelText("堆栈操作")]
public enum EViewStackOption
{
[LabelText("不操作 就叠加管理")]
None = 0,
[LabelText("显隐 不触发动画")]
Visible = 1, //直接显影
[LabelText("显隐 会触发动画")]
VisibleTween = 2, //堆栈逻辑中没有关闭逻辑都是隐藏 一个会触发动画一个不会 这个会触发关闭动画
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 50190b79766b448fa10788008b2c7ee1
timeCreated: 1683886374

View File

@@ -0,0 +1,16 @@
using Sirenix.OdinInspector;
namespace YIUIFramework
{
//不要修改值 否则已存在的界面会错误
//只能新增 不允许修改
[LabelText("层级类型")]
public enum EViewWindowType
{
[LabelText("窗口")]
View = 0,
[LabelText("弹窗")]
Popup = 1,
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 50c1d3f3ceaf45e4bbb2a67023008273
timeCreated: 1683887706

View File

@@ -0,0 +1,74 @@
using System;
using Sirenix.OdinInspector;
namespace YIUIFramework
{
//不要修改值 否则已存在的界面会错误
//只能新增 不允许修改
[LabelText("窗口选项")]
[Flags]
public enum EWindowOption
{
[LabelText("无")]
None = 0,
/// 当打开的参数不一致时
/// 是否可以使用基础Open
/// 如果允许 别人调用open了一个不存在的Open参数时
/// 也可以使用默认的open打开界面 则你可以改为true
[LabelText("参数不一致时 可以使用基础Open")]
CanUseBaseOpen = 1,
[LabelText("禁止使用ParamOpen")]
BanParamOpen = 1 << 1, //paramOpen 是obj参数形式的Open
[LabelText("我有其他IOpen时 允许用open")]
HaveIOpenAllowOpen = 1 << 2, //默认情况下如果你有IOpen接口 就必须强制使用这个接口打开
[LabelText("先开")]
FirstOpen = 1 << 3, // 默认后开 (如果先开: 当前UI先播放动画然后关闭其他UI 否则 其他UI先关闭 当前UI后打开)
[LabelText("后关")]
LastClose = 1 << 4, // 默认先关 (自己再打开其他 如果后关: 先打开其他 再关闭自己 这个时候大概率是看不到自己的关闭动画的)
[LabelText("禁止动画")]
BanTween = 1 << 10, //所有开关动画都会被跳过
[LabelText("打开动画不可重复播放")]
BanRepetitionOpenTween = 1 << 11, //生命周期内 打开动画只可以播放一次
[LabelText("关闭动画不可重复播放")]
BanRepetitionCloseTween = 1 << 12, //生命周期内 关闭动画只可以播放一次
[LabelText("不等待打开动画")]
BanAwaitOpenTween = 1 << 13, //这个影响的是打开动画之后的回调时机
[LabelText("不等待关闭动画")]
BanAwaitCloseTween = 1 << 14, //要动画完毕过后才会收到close回调 如果跳过就会立马收到
[LabelText("我关闭时跳过其他的打开动画")]
SkipOtherOpenTween = 1 << 15, //我关闭时 其他的界面直接打开不需要播放动画
[LabelText("我打开时跳过其他的关闭动画")]
SkipOtherCloseTween = 1 << 16, //我打开时 其他的界面直接关闭不需要播放动画
[LabelText("Home时 跳过我自己的打开动画")]
SkipHomeOpenTween = 1 << 17, //被Home的界面直接打开 不播放动画
[LabelText("播放动画时 可以操作")]
AllowOptionByTween = 1 << 18, //默认播放动画的时候是不能操作UI的 不然容易出问题
}
public static class WindowOptionOptionExt
{
public static void Set(ref this EWindowOption owner, EWindowOption option)
{
owner |= option;
}
public static void Unset(ref this EWindowOption owner, EWindowOption option)
{
owner &= (~option);
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2582d3c00b6e47a683d7b4ef29245d7c
timeCreated: 1688635736

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: aaca2eaea675486986f13eff3f27d791
timeCreated: 1688739194

View File

@@ -0,0 +1,31 @@
namespace YIUIFramework
{
/// <summary>
/// 触发堆栈时 会有消息
/// 参数info 是给你看触发你消息的是谁
/// 不要滥用 不要修改里面的值
/// </summary>
public interface IYIUIBack
{
/// <summary>
/// 是被关闭触发 (有界面打开 当前界面被关闭)
/// 自己被关闭
/// </summary>
/// <param name="info">触发的那个界面是谁</param>
void DoBackClose(PanelInfo info);
/// <summary>
/// 是添加触发 (有其他界面关闭 当前界面被打开)
/// 自己被打开
/// </summary>
/// <param name="info">触发的那个界面是谁</param>
void DoBackAdd(PanelInfo info);
/// <summary>
/// Home触发 (有其他界面打开 当前界面被关闭)
/// 自己被关闭
/// </summary>
/// <param name="info">触发的那个界面是谁</param>
void DoBackHome(PanelInfo info);
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 4e4b1cd88ceb42f5836b39219b6bdfd8
timeCreated: 1688726015

View File

@@ -0,0 +1,13 @@
namespace YIUIFramework
{
/// <summary>
/// 当一个界面 EPanelOption.DisClose 时 (禁止关闭)
/// 且又被调用时 则会触发 可根据需求继承
/// </summary>
public interface IYIUIBanClose
{
//根据需求返回 是否可以被关闭
//返回true 就是可以被关闭
bool DoBanClose();
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 1f3784419e6143cd85a59a9fcc193030
timeCreated: 1688726154

View File

@@ -0,0 +1,33 @@
using Cysharp.Threading.Tasks;
namespace YIUIFramework
{
public interface IYIUIOpen
{
}
public interface IYIUIOpen<P1> : IYIUIOpen
{
UniTask<bool> OnOpen(P1 p1);
}
public interface IYIUIOpen<P1, P2> : IYIUIOpen
{
UniTask<bool> OnOpen(P1 p1, P2 p2);
}
public interface IYIUIOpen<P1, P2, P3> : IYIUIOpen
{
UniTask<bool> OnOpen(P1 p1, P2 p2, P3 p3);
}
public interface IYIUIOpen<P1, P2, P3, P4> : IYIUIOpen
{
UniTask<bool> OnOpen(P1 p1, P2 p2, P3 p3, P4 p4);
}
public interface IYIUIOpen<P1, P2, P3, P4, P5> : IYIUIOpen
{
UniTask<bool> OnOpen(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5);
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 0b168301c2b845a18caebfaa2746939b
timeCreated: 1681898440

View File

@@ -0,0 +1,28 @@
namespace YIUIFramework
{
/// <summary>
/// 面板接口
/// </summary>
public interface IYIUIPanel : IYIUIWindow
{
/// <summary>
/// 得到窗口所在的层
/// </summary>
EPanelLayer Layer { get; }
/// <summary>
/// 界面的各种选项
/// </summary>
EPanelOption PanelOption { get; }
/// <summary>
/// 面板堆栈操作
/// </summary>
EPanelStackOption StackOption { get; }
/// <summary>
/// 同层级,优先级高的在前面
/// </summary>
int Priority { get; }
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 389937c9848548199e2083daa3b39e33
timeCreated: 1681898436

View File

@@ -0,0 +1,9 @@
namespace YIUIFramework
{
/// <summary>
/// View接口
/// </summary>
public interface IYIUIView : IYIUIWindow
{
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: b5f2f5ec1c684aac92f7f589dedd2af1
timeCreated: 1683797315

View File

@@ -0,0 +1,30 @@
using Cysharp.Threading.Tasks;
namespace YIUIFramework
{
public interface IYIUIWindow
{
UniTask<bool> Open();
UniTask<bool> Open(ParamVo param);
UniTask<bool> Open<P1>(P1 p1);
UniTask<bool> Open<P1, P2>(P1 p1, P2 p2);
UniTask<bool> Open<P1, P2, P3>(P1 p1, P2 p2, P3 p3);
UniTask<bool> Open<P1, P2, P3, P4>(P1 p1, P2 p2, P3 p3, P4 p4);
UniTask<bool> Open<P1, P2, P3, P4, P5>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5);
/// <summary>
/// 窗口选项
/// </summary>
EWindowOption WindowOption { get; }
/// <summary>
/// 显隐状态
/// </summary>
bool ActiveSelf { get; }
/// <summary>
/// 关闭窗口
/// </summary>
void Close(bool tween = true, bool ignoreElse = false);
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 283b0c644f704d97a19f280853cbb1e4
timeCreated: 1684130734