diff --git a/CHANGELOG.md b/CHANGELOG.md index b03b430..dbe4ce7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,33 @@ # Changelog + +## [Unrelase] + +修复反射库钟使用方法类型检查时,产生数组越界,或空引用问题,这会在部分匿名转换过程中发生。 +修复使用匿名对象赋值时,如果类型不匹配会报错的问题,现在改为了产生警告。 +文本库中值包裹器内部由于之前改为了使用文本值,所以针对对象的自动ToString方法会报错,引发了上述的错误。现在改为了在set时进行通过ToString。 +修复文本包裹器中ValueBlock的索引递增未生效的问题。 +修复反射库中首选检索无参可能会报错的问题。 +完善所有包裹器的参数化过程。 + +## [0.5.0] - 2025-07-04 + +调整了插件编译结构 +插件的部署地址换到了自己的[服务器](https://xeric.zicp.fun/). +中间那个版本感觉不吉利,所以没有,并不是缺少了这部分版本。 +本体切换使用il2cpp版本的json dll,后面会将这部分内容放在dll外面,避免对某一特定版本dll依赖。 +添加了一个tmp超链接处理功能。 +修复超级单例中对示例获取逻辑。 +针对数学库添加测试方案。 +数学库添加部分函数计算功能。 +文本库中值包裹器内部改为了使用文本值。 + +## [0.3.6] - 2025-06-20 + +添加了日志系统。 +添加了高级反射系统。 +添加了严格模式。 +列表Join方法的默认分割符改为了"," + ## [0.3.5] - 2025-05-22 提供了一种自动的多平台文件写入系统。 @@ -7,10 +36,6 @@ 修复按键宏判断逻辑,之前可能在按键委托中无法及时获取按键状态。 修复枚举器软接口的批量类型包装错误。 -## [0.3.4-WEBGL] - 2025-04-30 - -当前版本依赖WebGL的json库,其他功能也将逐步替换为webgl版本 - ## [0.3.4] - 2025-04-23 增加了文本格式包裹器。 diff --git a/Editor/DeconstructionStyle.dll b/Editor/DeconstructionStyle.dll index 2af3fd7..fb9533c 100644 Binary files a/Editor/DeconstructionStyle.dll and b/Editor/DeconstructionStyle.dll differ diff --git a/Editor/GitHelp.cs b/Editor/GitHelp.cs new file mode 100644 index 0000000..1d6a048 --- /dev/null +++ b/Editor/GitHelp.cs @@ -0,0 +1,13 @@ +using UnityEditor; + +namespace SesothoLineEditor +{ + public class GitHelp + { + [MenuItem("Help/View Git Page", true, int.MaxValue)] + public void a() + { + + } + } +} \ No newline at end of file diff --git a/Editor/GitHelp.cs.meta b/Editor/GitHelp.cs.meta new file mode 100644 index 0000000..fc713d3 --- /dev/null +++ b/Editor/GitHelp.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e39c59daca384162bb1eb3efef317662 +timeCreated: 1753060650 \ No newline at end of file diff --git a/Editor/XericLibraryEditor.dll b/Editor/XericLibraryEditor.dll index 1de2837..a096966 100644 Binary files a/Editor/XericLibraryEditor.dll and b/Editor/XericLibraryEditor.dll differ diff --git a/README.md b/README.md index b39efe0..8d074b6 100644 --- a/README.md +++ b/README.md @@ -1,823 +1,14 @@ -

Deconstruction

+

Xeric Library

- 发布页面 +个人发布页面(最新) +Gitee发布页面 +Github库 -## 简介 +更多内容请翻阅[百科](https://xeric.zicp.fun/LiRuochen_WorkFlow/XericLibrary-Publish/wiki) -unity通用库插件,现已转为unity 6000版本。 -此插件为XericDigitalTwinTool插件库的前置依赖项。与MateriaLibrary材质库一起使用更好哦! - -单独使用可能会遇到编译报错,可以直接删除报错指向的文件。造成报错的原因可能是版本不兼容,依赖项uid错误等等。如果能力足够,请自行解决。 - -webgl下部分内容为了兼容性可能与本体有所区别,注意辨别 - -## 软件架构 - -* CentralizeLog: 小日志,unity本身的日志在调用时开销巨大,所以提供一个小日志的类型保存临时的日志内容。 -* Deconstruction: 通过数学公式对线进行描述,进行标准的CAD线路参数计算,并支持在线路上进行导航,合理性计算等 -* RescissionRework: 撤销重做 🕑 -* SerializerHelper: 序列化库 -* XericLibrary: 实用性unity宏库,包含一些实用扩展用法。 - - - ----- ----- -## XericLibrary (主要核心库) - -XericLibrary 部分由两个dll组成,一个是 Xeric Library,另一个是 Xeric Library Editor 。 - ----- -### 宏库 - ----- -#### 特性库 - -* CanFind$ - 其中包含多个特性类,用于查找类,字段,属性,方法等项目。 - -* ReName - 重命名特性,在没有安装odin插件的旧版本引擎上可以直接替换细节面板中的参数名称,不过由于无法和odin兼容,所以odin的功能会覆盖掉这个特性。 - 主要作用是提供属性标签查找功能。 - -#### 协程宏 -#### 调试宏 -#### 模型网格宏 -#### 机器标识宏 -#### 摄像机宏 -#### 颜色宏 (MacorColor) -#### 常数宏 (MacroConst) -#### 曲线宏 (MacroCurve) -#### 枚举宏 (MacroEnum) - -枚举宏包含一个缓存封装器,可以通过MacroEnum\来定义。 -定义枚举结构封装将允许像列表一样访问这个枚举,或将枚举实例赋予,通过枚举封装器来操作枚举值。 - -#### 方程宏 -#### 事件宏 -#### 文件宏 (MacroFile) - -文件宏包含预设常用的文件写入,读取操作,并自动解决文件不存在的问题,通过返回布尔状态来快速判断解决。 - -原始api中,仅包含一层简单的c#文件处理封装,无法适配unity其他平台情况,这些api已经被标记为过时,但你仍然可以继续使用他们。 -新版中,添加了对多平台的支持: - -* 增加了CrossPlatformFileHandle文件句柄,用于处理多平台的文件写入,加载的基类。 - 使用时,通过CrossPlatformFileHandle.ActiveHandle来获得当前平台自动对应的文件句柄,其中包括了一组同步和一组异步的读写方法,来对目标地址进行访问。 - 下面是一个示例: - ``` - // ==== 同步读取 ==== - CrossPlatformFileHandle.ActiveFileHandle.ReadTextFromFile("absolute file path", out string content); - - // ==== 同步写入 ==== - CrossPlatformFileHandle.ActiveFileHandle.WriteTextIntoFile("absolute file path", string content); - - // ==== 异步读取 ==== - var isCompleteRead = await CrossPlatformFileHandle.ActiveFileHandle.AsyncReadTextFromFile("absolute file path", - s => - { - // 成功读取文件 - }, - s => - { - // 读取失败,原因是 s - Debug.ErrorLog(s); - }); - - // ==== 异步写入 ==== - var isCompleteWrite = await CrossPlatformFileHandle.ActiveFileHandle.AsyncWriteTextIntoFile("absolute file path", - null, // 成功写入文件,但是无需处理 - null); // 写入失败,但是无需处理 - - // 异步方法包含回调函数处理,也可通过返回布尔值判断文件写入是否成功。 - ``` - 同时,文件句柄也提供了相对路径拼接: - ``` - // 返回steamingAssets下的myFile.json文件路径 - CrossPlatformFileHandle.ActiveFileHandle.CombineStreamingAssets("myFile.json"); - ``` - -* 添加了XericSerializerFormatter序列化器,用于通配处理多种序列化器目标。 - 目前默认提供了 Json格式化 和 bin格式化 。 - 下面展示如何使用: - ``` - List obj = new List() { 1, 2, 3}; - // 序列化目标 - var content = JsonSerializerFormatter.formatter.Serializer(obj); - // 反序列化目标 - obj = JsonSerializerFormatter.Deserializer.Serializer(content); - ``` - - 为了方便使用,文件句柄支持填入序列化器来实现更多的格式: - ``` - // 类型太长了可以使用声名简化 - using static XericLibrary.Runtime.MacroLibrary.MacroFile.CrossPlatformFileHandle; - using static XericLibrary.Runtime.MacroLibrary.MacroFile.JsonSerializerFormatter; - - ActiveFileHandle.AsyncWriteXIntoFile( - ActiveFileHandle.CombineStreamingAssets("myFile.json"), - uriConfig, null, s => Debug.LogError(s), formatter); - ``` - ----- -#### 窗口宏 (MacroForm) - -提供User32.dll中部分函数的功能。 - -* 获取当前进程PID:PID -* 通过句柄查找窗口:FindWindow -* 控制窗口化状态:ShowWindow -* 枚举显示器信息:GetDisplayMonitorsInfo - ----- -#### 步进宏 -#### 按键宏 (MacroKey) - -预设了一些判断较复杂按键状态的逻辑。 - -对于外部的常规逻辑,可以使用扩展的InsertKey逻辑。 -为了使用这些逻辑,需要定义一个KeyFlippingStampSheetStyle(简称KfsStyle)。 -``` -KeyCode.A.AsKfsStyle(); -``` -将这个作为按键索引,传入扩展的状态检查事件一同执行更新,即可做出判断。 -这会返回一个KeyFlippingStampSheet,里面包含当前按键状态的布尔值,以及按键判断时触发的委托事件。 - -* 交叉动作与延迟触发长按 - ``` - var keySheet = Input.GetMouseButtonDown(0).InsertKeyStateCmet(KeyCode.A.AsKfsStyle()); - ``` - 使用IsPressed判断是否单击按下,如果是双击,第一次点击时当前帧还是会返回单击事件。 - 使用IsReleased判断刚刚的单击是否释放,如果上一次是长按状态,那么这个释放事件不会触发。 - 使用IsDoubleClick判断是否双击,双击事件会出现在第二次点击间隔小于KfsStyle中设置的双击间隔时。 - 使用IsFirstLongPressed判断是否长按,当一次按下后不释放时间大于KfsStyle中设置的长按间隔时出现一次。 - 使用IsLongPressedState判断是否长按,当一次按下后不释放时间大于KfsStyle中设置的长按间隔时出现。 - 使用IsLongReleased判断刚刚长按是否释放。 - -* 坐标保持触发 - ``` - var keySheet = Input.GetMouseButtonDown(0).InsertKeyStatePt(KeyCode.A.AsKfsStyle()); - ``` - 与上述功能一致,但可以使用拖拽事件: - 使用IsChangeDraggingFromLongPressed判断长按事件是否转为拖拽事件。 - 使用IsBeginDragging判断当前是否开始拖拽。 - 使用IsDragging判断当前是否正在拖拽。 - 使用IsDropping判断当前是否正在丢弃。 - - 在拖拽期间,长按状态将继续触发,但长按事件将转为拖拽事件,长按事件。 - 拖拽结束后,如果以拖拽结束,但以长按开始,那么长按结束事件也会触发。 - -* 光标坐标计算: - 提供诸如类似GetRectangleRelativelyPoint的扩展方法,将传入的光标坐标计算为相对坐标。 - ----- -#### 列表宏 (MacroMath) - -* FisherYatesShuffle: 洗牌算法,返回一个索引映射数组,同时也提供一个线程安全的蓄水池洗牌算法。 -* GetRandom: 从列表中随机获得1个或多个对象(洗牌算法)。 -* MakeIEnumberable: 将一个对象制作成枚举器。 -* LandedIndex: 从迭代器中抽出索引下的成员。 -* SelectConvert: 从非泛型迭代器转为泛型迭代器。 -* ForEachDo: 迭代器执行。 -* Adjoint: 迭代器拼接一个索引。 -* SubSegment: 仅迭代开始索引后一段数量范围内的成员。 -* Startup: 在当前迭代器之前拼接一个或多个成员(迭代器) -* Endeavor: 在当前迭代器之后拼接一个或多个成员(迭代器) -* Join: 将当前迭代器加入到字符串,可以设置如何开头,结尾,成员分割符。 -* Merge: 将当前迭代器合并,可以实现类似sum的操作。 -* EqualitySet: 比较两个迭代器里的成员是否相等。 -* Shift: 偏移列表,也可以使用RingShift,CyclicShift循环偏移。 -* 包含针对IList>的Add,TryAdd,AddUnique,Remove,Modify,Contains,IndexOf,GetValue,GetKey,GetKeys,GetValues方法。 -* BinarySearch: 二分法遍历 -* FindClosestIndexByBinarySearch: 基于浮点数的二分法查找方法。 -* IsIndexGreaterZeroLessCount: -* AddByIndex: 在索引处添加目标,如果索引不存在,则用default填充;如果目标已经存在,就替换。 -* TryDoAtIndex: 尝试在索引处执行些什么,如果索引不存在,则什么都不做。 -* ReplaceList: 使用一个列表替换另一个列表,允许通过自定义增删改方法修改(和DiscrepancyOrder作用几乎一致,不过这个会因为条件不满足而产生报错)。 -* DiscrepancyOrder: 列表顺序差异,从源到目标列表的差异会通过委托开放,允许自定义删除,增加,替换来完成修改。 -* TryGetAtIndex: 尝试读取索引处的成员。 -* ForceDoAtIndex: 强制在索引处执行些什么,不论成员是否存在,永远都会执行委托。 -* ForceGetAtIndex: 强制在索引处获取成员。 -* ----- -#### 数学宏 (MacroMath) - -* RandomFloat/Vector/Matrix:通过一个随机生成器快速获得随机值。 -* Pmod:在正数空间上对值取余,负数情况下仍然会保持与正数相同的曲线形状。 -* RoundToAny:将一个矢量四舍五入到任意的倍数,比如4.8舍入3.5得到3.5,6.2则得到7 -* MinPositive:获取正数空间上的最小值。 -* SmoothStep:获取t在(a,b)之间的埃尔米特过度 -* LinearStep:获取t在(a,b)之间的线性过度 -* RoundBasedOnMinimumDifference:将一个值根据最小的差值进行四舍五入 -* DiscardLeastSignificantDecimal:舍弃不重要的小数位 -* ClampWrapAngle:钳制角度 -* GetNumberOfDecimalsForMinimumDifference:获取最小插值的小数个数 -* CosineSimilarity:余弦相似度 -* FibonacciRecursive:斐波那契迭代方式计算(会产生大量循环) -* FastInvSqrt:快速平方根倒数 -* IsPrimeNumberRw:检查一个数是否是质数(这是一个娱乐用法,利用正则表达式判断是否为质数,性能消耗较高) -* GetCirclePoints:获取圆上的点 -* GetRayIntersectionCircle:获取切于圆的线两点坐标 -* GetHeightOfRoundArch:获取圆拱高度 -* GetListFormAToB:获取从A到B的列表 -* LerpTransform:创建lerp矩阵 -* ----- -#### 消息库 (MacroMessage) - -预设一些消息处理流程。 - -* 全局业务分发器,消息入口Entry。 - - 特点是需要通过指定消息入口(RedirectReceiverMessage)和出口(RedirectReceiver)来中转消息。 - 完成后消息发送时会被进行一次包装,将带有入口名称的内容一同发送;而在消息处理的另一端,也需要用相同的逻辑处理这个包,就能获得这个包来自哪,并自动定位到对应的预定义委托上进行处理。 - 下面是一个接收示例: - ``` - // 声名一个消息处理器委托 - // 接收器形参可以是任何可以序列化的结构,或是无形参接收器。 - public MacroMessage.ReceiverObject myFunc; - public void Awake() - { - // 初始化函数中注册这个委托,并赋予一个名称用于标识 - myFunc.RedirectReceiver(nameof(myFunc)); - myFunc += Func; - } - // 处理消息 - public void Func(int number) - { - // 消息处理 - } - ``` - 下面是一个发送示例: - ``` - // 在收到文本消息后,立刻发送给重定向器 - void OnMessage(string message) - { - MacroMessage.RedirectReceiverMessage(message); - } - ``` - 最后,需要定义何时处理消息: - ``` - // 比如放在帧更新事件中,消息会作为队列加入,然后逐个处理。 - void Update() - { - MacroMessage.MainThreadProcessingMessage(); - } - ``` - -* 方法封装器 - 提供一个方法软引用封装器,首先需要将一个可执行流程转换为CallableTarget对象。然后通过AddCallableFunction添加到全局字典中,随后可以通过TryEvocation或者Evocation调用。 - 方法封装器默认可以搜索所有静态,实例,私有,公共的方法 - ----- -#### 对象宏 (MacroObject) - -在gameobject或transform上快速迭代的操作库。 - -* 场景迭代 - * 获取当前场景中的所有根对象:GetActiveSceneRootGameObjects。 - * 在所有已激活场景中查找组件:GetAllSceneComponents。 -* 节点迭代 - * 获取父级迭代器:GetParents。 - * 获取子级迭代器:GetChildren。 - * 获取广度优先的子级迭代器:GetChildrenBFS。 - * 获取深度优先的子级迭代器:GetChildrenRecursion。(不要使用 GetChildrenDFS,存在严重性能缺陷) -* 组件迭代 - * 在当前位置无论如何都获取一个组件,如果没有就创建:GetComponentAnyway。 - * 在节点迭代器中找一个组件:GetComponent。 - * 将节点迭代器转为一一对应的组件迭代器:GetComponentsOTO。 - * 将节点迭代器转为组件迭代器:GetComponentsOTOD。 - * 在当前节点的所有子成员(包含子成员的子成员)内查找多个组件:GetComponentsInRecursionChildren。 - * 按照给定的组件顺序在节点迭代器中逐一查找:GetFavoriteComponent。 -* 家族迭代 - * 获取当前节点的家族名称:GetFamilyName。 - * 使用家族名称搜索节点:FindFamilyMember。(支持一次重定向,以及逐级名称模糊查找) - -以上仅包含大致用法,实际上包含更多的重载用法。 - ----- -#### PID宏 (MacroMath) - -提供一个PID计算器,具有基本的pid计算,同时带有基本安全计算。 - ----- -#### 对象池宏 - -预设快速设置的对象池(CreatSimplePool)与顺序对象池(CreatObjectInOrderPool),传入预制体与父级,将直接返回一个预设的对象池。 - -提供一个联合对象池(预设的)MacroPool.UnionSet,支持开放预制体目标与父级目标参数到inspector。 -联合对象池需要手动调用Init函数进行初始化。 - ----- -#### 矩形变换宏 -#### 超驰宏 (MacroReflection) - -* 签名转换:通过GetFieldsRename 获取给定名称的字段在自定义的重命名特性上的名称。 -* 软接口:SoftInterface 通过名称直接设置或获取值, - 支持在一个对象上获取一系列名称的值,或在一系列对象上获取同一个名称的值,或是反过来设置他们。 -* 实例化:通过OverridingInstance创建给定类的实例,支持通过全名 -* ----- -#### 正则库 (MacroRegex) - -提供了常用的正则匹配模式。 - -* GeneralVector:多维矢量文本匹配 -* ObjMesh:obj模型参数匹配(匹配的同时会转换坐标系到unity) -* RegexReplace: 直接使用编辑器常用语法进行替换,比如"$1"获取第一个匹配项并输出。 - ----- -#### 仓库宏 -#### 材质宏 -#### 平滑宏 (MacroSmooth) - -包含28个常用插值函数,可以使用SwitchEasing对一个数值计算插值,返回重新映射插值位置的数值。 -插值函数可以单独调用,或使用枚举切换。 - ----- -#### 排序宏 (MacroSort) - -c#自带的排序很好用,但是选择何种排序模式是根据数据类型自动切换的。 -在这里,排序宏中提供了一些可以手动选择的排序算法。 -注:没有猴子排序。 - ----- -#### 文本宏 (MacroMath) - -提供: -* StringBuilderPool: 文本构建池 -* join: 文本序列拼接。 - ``` - List objects = new List(); - objects.Join(obj => obj.ToString(), ) - - ``` -* 文本判断:空判断,空格判断,相等判断,字符集判断 -* 格式包裹:支持TMP的26个富文本标签,或者自行扩展更多包裹器。 - 包裹器可以依靠多态模型来构建文本,而不依赖字面量构建。下面是一个示例: - ``` - _blockBuilder = new TextBlockBuilder( - new ColorBlock(Color.white, "重量"), - new DelegateBlock(() => value.ToString()), - new SizeBlock(20, "kg"))); - ``` - TextBlockBuilder 是所有blocker的基类,使用它包裹所有文本将起到单纯拼接文本的作用;TextBlockBuilder 里的三个block的作用是使用相应的富文本标签包裹,根据标签的类型,包裹器会自动决定标签格式。 - DelegateBlock的作用是通过委托来实时获取一个变量,示例中直接获取value的文本值,拼接到结果中。 - TextBlockBuilder 可以不依靠如DelegateBlock这样的包裹器,可以直接将返回字符串类型的方法委托传入,blocker 会自动识别;前提是开启对应 blocker 里的compatibility兼容性检查,但这会带来额外的性能开销,如果没有特别的需求,建议还是使用DelegateBlock进行多态封装,这样也会更安全。 - - 在新的更新中,包裹器支持域写法,同时可以省略部分参数: - ``` - _blockBuilder = new TextBlockBuilder() - { - new ColorBlock() // 默认值就是白色 - { - "重量" - }, - new DelegateBlock(() => value.ToString()), - new SizeBlock(20) // 默认单位为像素 - { - "kg" - } - }; - ``` - 这里的作用与上面的示例完全一致,更新的包裹器中支持自动填入更多的默认值了,比如颜色默认为白色。 - 虽然看起来更长了,但是对于较复杂的格式来说可以有更强的可读性,建议这样写。 - - 同时,委托包裹器并不是唯一设置动态参数的方式: - * SetParamters:在根包裹器上使用赋值方法,可以将一系列值一一对应地填入到后续一系列包裹器中。 - * RefernceBlock:反射包裹器允许传入一个对象,以及成员名称来访问属性(字段,访问器,方法均可)。 - * ValueBlock:值包裹器,搭配SetParamters来设置值,目标需要实现Tostring方法。 - * NumberValueBlock数值类型包裹器,搭配SetParamters来设置值,设置值会自动限制在最大最小范围内,如果给定的参数是字符串类型,将尝试通过默认的格式化方法转为数值。 - - 在实际使用时,只有ValueBlock默认会从SetParamters参数列表中获取值, - 其他包裹器需要手动通过SetParameterization参数化包裹器,否则不会响应参数列表。 - - 值得时刻注意的是,SetParamters传递的值需要按深度优先的顺序逐一匹对,基本上可以认为是blockBuilder定义时的block先后顺序。 - 如果SetParamters中参数数量少于需求,在匹配时将会提前退出,导致后续值保持不变; - 如果遇到强制类型检查的block且值无法匹配,block不会处理这个值,而是丢给下一个,只有遇到这种情况时,索引才有可能不是一一对应的形式。(默认认为是这么处理的,具体行为可以由block自己定义) - - 关于性能:这种做法绝对不是省油的灯,绝对不要在运行时重复创建,而是声名在当前作用域的全局用作静态,或保持实例唯一。 - -* 文本转换:自动值转换为文本。 -* NumberToChinese:将数值转为中文大写。 -* 沃格纳费舍尔拼写检查器:检查一对或多对文本是否相似,返回最相似的文本序列,及相似度。 -* ListToString:打印数组 - -#### 时间宏 -#### 轴变换宏 -#### 类型扩展 -#### 矢量扩展 - ----- -#### 导航宏 - -提供寻路算法核,寻路几何体构造器(未实装)。 - -* AStart寻路算法核 -通过AStart2提供,算法核只包含计算过程,需要被计算的对象上实现接口IAstartNavNeighborNode。 -接口中需要定义当前“可寻路对象”的距离模式,相邻代价,以及所有邻居。 -如果需要定义管理器,可使用AStartNode进行快速封装。 - - ----- -#### 安全宏(计划废弃) - -提供ProgramFlowSecurity类,以及相关的扩展和符属类型。 -安全宏用于,当一个方法中需要通过委托等方法动态调用其他一个或多个方法时,如果其中的某个方法报错,会导致后续所有方法不可用,且调用这些方法的方法也会因为错误抛出而停止,且如果运行在unity关键阶段,比如awake时,可能还会导致脚本被disable。 - -使用安全宏封装要调用的委托,并指定调用时的标识位,当产生错误时,安全宏会捕获这个错误,并转为抛出错误信息,如果选择默认解决,那么这个错误将不会影响后续运行。 -但当下次调用时,安全宏将再次抛出一个错误信息,表示已经发生错误的委托被再次调用。 - ----- -#### 转换宏 - - ----- -#### 事件触发器宏 - -针对EventTrigger提供更快速的添加方法。 - ----- -### Spline组件 - -提供XericSplinePath,XericRectSplinePath组件。 -他们的区别是,一个用于三维世界,另一个用于UI界面。 -UI界面上的Spline组件会通过RectTransform控制,有区别与三维世界。 - -XericSplinePath可以直接在unity中进行挂载,并通过界面编辑点,在列表中可以增加和减少点,或改变点的顺序。 - -在脚本中使用XericSplinePath定义字段,可以让脚本在inspecter上呈现一个引用端口,引用组件以获取曲线实例。 - -曲线通常用于静态计算,在设计上并未考虑动态刷新,动态构建曲线的方法,如果希望动态地构建曲线,可以自行根据其中的结构提供点位数据。 - -在XericSplinePath曲线上初始时使用BakePoint()来烘焙一次数据,这个方法会在线组件上生成BakeData,有这个数据可以获得速度正确的的曲线映射,如果担心多个烘焙进行时的性能问题,可以使用协程方法BakePointCoroutine()推迟烘焙到来。 -烘焙的速度与精度有关,BakePoint()包含一个形参用于输入烘焙精度,默认100,表示进行100次采样,理论上采样越多,精度越高,但实际上并非越高越好,采样数量保持在数倍于实际点数量即可。 -烘焙后的曲线才可以使用重映射RemappingTimeValue(),同时也可以使用SplineLength获取曲线的长度。 - -在曲线实例上可以访问Evaluate...()方法来计算坐标,旋转,数值,颜色过度。 -方法要求给定一个驱动值t,取值范围在0-1之间。 -默认情况下,驱动值是几乎等分地控制着每条线路的,无论两个点之间的距离长短,都近似为“时间”相等的多段线,这意味着无法通过这样的一个线驱动一个物体平滑地从起点运动到终点。 -而开头我们使用BakePoint()烘焙的数据就起作用了,通过调用线实例上的RemappingTimeValue()将时间驱动值转换为速度驱动值,这会带来非常平滑的效果。 - -2D的线路组件XericRectSplinePath工作在Rect上,如果屏幕的工作分辨率实际上是可变的,可能会导致实际线路有时会错位,这是因为线路工作的参考坐标系是静态的。 -如果当前项目的窗口缩放易变,建议每帧调用UpdateRectDepend()(一般都很难遇到分辨率亘古不变的情况),这个方法可以刷新曲线构建所依赖的矩形空间坐标。 - -为了适配速度矫正后的线路,建议使用线路的长度作为循环的时间最大值,而不是强制所有线路从0-1取值,线路总长度可以使用SplineLength属性获取。 -这里是一个示例:(这个示例中使用的是二维曲线,但设置ui的方法是世界空间的,并非屏幕空间,这是因为我驱动的目标对象还是世界空间的Sprite,同时较小的ui坐标便于计算尾迹的长度,避免结果速度太快) -``` -public void UpdateBySpline(XericRectSplinePath spline) -{ - totalTime = (float)spline.SplineLength; - var remappingTime = time / totalTime; // 这是没有速度矫正的值 - remappingTime = spline.RemappingTimeValue(remappingTime); // 经过速度矫正 - // 设置坐标 - var pos = spline.EvaluatePosition(remappingTime); // 获得坐标 - transform.position = pos; - // 设置旋转朝向运动方向 - var lastOffset = (lastPosition - pos).normalized; - var ang = Mathf.Atan2(lastOffset.y, lastOffset.x) * Mathf.Rad2Deg; - transform.localRotation = Quaternion.Euler(0, 0, ang); - lastPosition = pos; - // 设置缩放,来自曲线上定义的浮点值 - var size = spline.EvaluateValue(remappingTime); - transform.localScale = size; -} -``` - -三维曲线与二维曲线类似,也可以通过烘焙操作来获得一些特殊方法的调用许可。 - ----- -### 文件阅读器 - -提供WWWDataDriver和WebFileLoader网络文件读取功能。 - -MacroFile库中对web平台的文件操作通过WebFileLoader实现,其中包含一个简单的协程文本加载。 - -WWWDataDriver则可以自行配置post或get请求,并允许将对象属性填入表单来进行请求。 -同时,允许下载文本,图片等内容。 - ----- -### 简易批处理器 - -在代码中引用 XericLibrary.Runtime.Type.BatchProcess , -并将需要进行批处理的对象实现 ICanBatchProcess 接口, -其中提供了所有额外支持的生命周期事件,可以直接实现或显式实现。 - -缺点是只有异步方法的生命周期约束,且没有提供线程安全的数据类型。 - -和官方的相比没有什么优势,只是作为dll内部的部分程序的替代品,没事不要用这个。 - ----- -### 多维布尔 - -提供Bool1,Bool2,Bool3,Booln。 -其中除了Booln是类,其他都是结构体,在相互转换时需要注意。 - -不同的多维布尔对象之间可以互相转换,且参数不会遗失。 -他们的区别是会在界面上绘制不同数量的参数。 - -其中bool1与普通布尔几乎无二,可以直接隐式转为bool,只是他存储的方式为int,可以用于bool隐式转为int。 - -多维布尔可以与矢量运算: -* 乘法相当于使用多维布尔置零这个矢量对应轴。 -* 除法时多维布尔作为被除数时,相当于对矢量各轴取倒数,并置零非选中轴。 -* 除法时多维布尔作为除数时,相当于计算已被多维布尔置零对应轴的矢量的模长。 - -多维布尔可以与布尔运算: -* 异或操作可以对多维布尔各轴异或。 - ----- -### 预设与函数退化链(废弃) - -提供一个抽象基类PremadeLinkedNode,它以链表形态工作,通过AddNode添加另一个节点。 -添加完毕后使用Invoke并传入参数,这将自动根据参数形态选择函数。 - ----- -### 时间节点 - -提供TimingStamp,TimeStamp。 - -TimingStamp用于时间快速转换,以及在unity界面上呈现的能力。 -TimeStamp用于隐式的,在极短时间内(小于1tick)的时间戳的名称标记。 - ----- -### 空对象 - -提供Empty\用来快速创建一个空对象。 -这个空对象中包含空列表,等其他多种资源。 -值得注意的是,在创建空组件时(component)会从超驰库中使用自动实例化命令执行这一过程,可能会导致在场景中出现空节点(GameObject)。 - ----- -### 类标签 - -提供CanFind系列特性。 -* 使用CanFindClass标记类 - 当使用被标记类的实例时,可以使用.GetClassCanFindTag()获取这个类上包含的所有标记。 - 或使用.GetClassByCanFindTag()获取这个标签被赋予的所有类。 - 配合MacroReflection库,可以直接在当前程序集中找到这个类的所有实例。 - -* 使用CanFindProperty标记属性 - - -* 使用Rename标记属性 - 在editor中可以搜索特性来快速实现重命名,使用TryGetMemberName来获取FieldInfo名称,如果没有标记,那么使用属性名称,否则使用重命名。 - -* 使用CusMe标记类,属性,事件,委托等 - 需要手动通过不同的分类进行标记,如使用CusMeProperty来标记属性。 - 包含被标记的特性的类在创建实例时,可以通过CusMeManagerment的实例通过AddTarget添加目标,被添加的成员可以用于菜单构建。 - -### 排挤网格 (代办) - -提供OstracizeGrid排挤网格,网格各尺寸大小是由占据此网格的ui决定的; -当一个ui的大小发生改变后,占据更多网格,被占用网格的ui可以移动到周围空余的网格位置。 - -网格可以在世界空间中定义,或在屏幕空间定义,这会影响排挤网格的自动缩放 -最终ui排挤通过屏幕空间计算。 - ----- ----- -## DataBaseControl (快捷数据库) - -数据库控制器,当前主要工作区域是SqlClient部分 - ----- -### 基础使用 - -数据库操作的指令被抽象到Order类了(注释里会称为解释器,指的就是order类),比如sqlClient就是sqlcOrder,其中sqlc代表sqlclient。 -order类本质上是一个文本拼接器,为了方便管理,你可以使用对应类的order.GetOrder来获取池中的一条指令,比如: -``` -var orderValues = SQLCHelper.GetOrder(); -``` -这个orderValues必须手动释放才会回到池中,比如: -``` -orderValues.Dispost(); -``` -GetOrder指令可以在编译时静态调用,用作静态参数,不去释放,这样的话指令的生命周期会跟随程序释放而释放。 -使用指令前建议先清空,避免指令污染: -``` -orderValues.CleanOrder(); -``` -然后,可以在指令上调用对应的函数,里面预制了数据库连接增删改查,表增删改查,项增删改查,以及插入判断,筛选条件命令。 -对于连接功能,可以参考下面的示例: -``` -public void InitDataBase(string hostName, string databaseName, string tableName, - IEnumerable valueData) -{ - SQLCHelper.connectOrder.OrderSetServer(hostName, null); - // 数据库不存在,就创建一个 - if ((int)orderValues.OrderIsDataBaseExist(databaseName) - .ExecuteScalar() <= 0) - orderValues.OrderCreatDataBase(databaseName) - .ExecuteNonQuery(); - - SQLCHelper.connectOrder.OrderSetServer(hostName, databaseName); - // 数据表不存在,就创建一个 - if ((int)orderValues.OrderIsTableExist(tableName) - .ExecuteScalar() <= 0) - orderValues.OrderCreatTable(tableName) - .ExecuteNonQuery(); - - // 构建数据项目 - orderValues.CleanValue(); - orderValues.Values.AddRange(valueData.Select(a => new SqlCOrder.SqlCValue(a.name, a.value))); - - // 数据项目不存在,就创建一个 - if (valueData != null) - { - orderValues.OrderInsetTableItem(tableName); - } -} -``` -可以看到前面会使用同一个order指令来执行命令构建,然后通过Execute方法来执行指令。 -指令在构建时会将文本压入stringBuilder中,直到遇到Execute指令后,指令才会被拼接成具体的文本,存入历史指令中。 -当这个指令中stringBuilder里没有待输出的指令时,就会使用之前拼接过的文本,也就是说一条已经构建的指令可以被重复执行。 - -刚刚的示例代码也可以通过调用预制的扩展方法完成,比如: -``` -orderValues.InitializationDataBase("localhost", "DEFAULT_DATABASE", "DEFAULT_TABLE"); -``` -上面这段指令会自动连接到地址localhost下,名为DEFAULT_DATABASE的DEFAULT_TABLE表中。 -如果数据库中没有库或表,将会自动创建。这对于仅仅为了保存数据的情况来说会比较方便,但它无法检查数据库中是否缺少键。 - -这种扩展指令根据其使用情景可能会相对于普通的方法有所区别,就比方说刚刚这个扩展方法会立刻执行,不需要手动调用Execute方法。 -而一般指令都仅仅只是将命令填入拼接池中,然后在Execute中执行order里的SubmitOrder()来持久化指令内容。 - -如果希望在内存中保留一个与数据库对应的数值,则可以使用order的Values属性; -一个order里的Values对应一个数据库表里的一列下的一个数据。 -Value的name对应列名,value对应实际值。 - -还是上面那段完整的数据库创建函数实例中,最后的OrderInsetTableItem就是将values插入到表的指令,包括InitializationDataBase扩展中也会自动将当前执行的order里的values插入到表,所以这个指令会建议手动管理生命周期。 - -这里说明一下,指令里的方法名称是有特定规律的: -* 比如用于单段执行的指令方法,会使用Order开头,使用.Order...可以搜索到很多相关的指令。他们都会返回自身,用以支持链式的调用。 -* 如果某个指令的后面可以继续添加指令,比如条件指令之类的,可以使用.OrderJoin...搜索到一些相关的预制指令。 -* 而其他的指令则可以在扩展库中找到,扩展库中会专门针对特定的应用情景开放专门的方法。 - ----- -#### 数据读写 - -在上面已经说过如何新建表,建表的时候会默认写入一次数据,而如果希望手动定义表格里的内容的话可以这么写: -``` -order.OrderJoinValuesDefinitinOnly(orderValues.Values); -``` -如果希望填入当前order里的Values的话,可以这么写: -``` -``` - -读取可以使用: -``` -orderValues.OrderSelect("DEFAULT_TABLE", null, null, true, true); -``` -这段指令将orderValues里的value作为项目进行查询,两个null对应指定条件和排序,这里为空,所以这会返回所有value的值。 -记得使用ExecuteReader执行,并返回阅读器进行处理,在阅读器中,需要手动根据值名称一一对应地将值填回orderValues里。 - -不过在扩展类中也提供了自动地读取逻辑: -``` -orderValues.ReadLatestValue("DEFAULT_TABLE"); -``` -这会读取数据库中的,orderValues中的值,并直接写在orderValues的每一项中。 -然后直接对orderValues中的values进行处理姐可以了。 - -需要注意的是,这些指令虽然没有明确要求数据库连接,但还是至少需要连接过一次数据库,比如至少调用过一次InitializationDataBase方法,这样,后续的所有指令都可以不需要主动指定connectOrder项目。 -比如在最开始使用InitializationDataBase进行一次初始化即可。 - - - ----- ----- -## Deconstruction (线路绘制,暂缓更新) - -Deconstruction 部分由两个dll组成,一个是 Deconstruction(Runtime),另一个是 Deconstruction Style(Editor)。 - ----- -### 线路绘制 - -线路绘制组件支持二维,或三维的线条计算,线条继承自“可放置物”类,为了能够显示线条,需要向其提供渲染器和,同理,为了能够算出构成线的点集合,需要提供线计算器。 -为此插件内默认提供了一个使用lineRenderer组件的线渲染器,以及二维的直线和圆弧的线计算器。 -在计算平面上的CAD线路时,通过实现二维的线计算器,并实现它的坐标转换方法,即可在任意表面上实现线的绘制与保存。 - -另外如果希望快速构建具有特制绘制规则的对象,则需要另外的可放置物管理器 PlaceElementManager , -它继承于 SingleMonoBase ,所以可以通过单例的方式访问它。 - -可放置物管理器管理的是所有的可放置物对象,和决策工具类 DecisionMakerToolBase ,以及它们的生命周期。 - -工具类则提供了细致的针对如何放置对象的操作规则,并提供了操作栈表结构, -可以通过操作栈来实现具有链表关系的行为树,栈中的每个节点是行为树上的一个节点, -每个节点可以访问到上一个对象和下一个对象成员的节点。 - -每个节点可以是正在绘制的线,正在计算寻路的ai,或其他任何行为, -在节点内可以直接通过 ReplaceThis(new Exit_OpSlot()); 方法类来切换行为树的节点到一个新的节点。 - -* 基础规则 -建议在工具类中进行创建等操作,管理类中只进行管理操作,比如在插件的sesotho部分的非dll文件中,提供了SesothoPeManager和SesothoArrangementWiresTool,他们就是管理器与工具类的派生部分。 - -* 按键规则 -在没有任何工具启动的情况下,管理器可以接收按键输入,直到被工具输入抢占。 -不过,管理器到工具中并没有任何抢占逻辑,所以请根据工具激活逻辑适时关闭按键处理。 -另外,在没有任何工具激活的情况下,工具本身的按键获取机制也不会激活,记得使用原生的按键获取逻辑。 - -* 线路规则 - - -* 链路规则 -链路是指实现了IConterminousness接口的对象,这个接口提供了一个获取ICoterminous接口的访问器; -ICoterminous接口通常是用于实现链接关系的抽象层,简单的通过输入和输出来定义链接的线路,在接口中可以通过GetOpposite在当前对象的链接结构上下文中访问另一个与当前访问者相对应的链接对象,通常这是与访问者同类的对象,但是会经过接口进行抽象;而GetIdentical则可以获取与访问者同类链接的对象成员。 - -链路方向使用LinkType进行标记,也可以直接使用LinkType.SwapType()来快速反转这个链接标记; -LinkType可以直接和LinkedPortType相互进行转换,也可以使用LinkType.ConvertType()来快速转换类型。 -链路方向通常只用在内部作为方向标识,外部无法获取,一般只在设置时进行一次标识设置即可。 - ----- -### 线路结构 - -线路绘制组件提供了线路绘制,线路引用链控制等基本操作。 - -* PromptLine2提供近乎完善的线路计算与绘制操作,它继承于PlacementBase,这代表它是一个可放置对象。它实现了以下接口: - * IPossessorTrajectory2:轨迹结构定义接口,接口要求线路实现渲染器和计算器组件,以及若干坐标、法线、长度计算结果获取的方法; - * IConterminousness:链表相连结构接口,要求实现的对象上提供获取链路结构的属性,以及简单的加入和移除方法; - * ICoterminous:一个允许枚举链路成员的对象,同时需要能够根据入口出口枚举方向来自定义迭代。 - * 这里可以使用LinearPeriodicLink用来表示线性连接数据结构,这个对象内只能定义入口和出口两个对象,可以使用入口或出口枚举来访问对应的成员。 - * 如果需要定义一组多个出入口对象集合的话,可以使用GroupTheoreticLink,然后通过入口出口枚举可以获取一组对应的成员。 -* PromptLine2用于定义线路,这个类中包括吸附,相切计算在内的操作均在二维空间中计算,但默认所有的坐标均展示在三维世界的 untiy xz 平面上。 - ----- -### 生命周期 - - -由于所有的成员都是通过批处理器完成生命周期的定义,批处理器的调用时机对于后续的流程来说至关重要。 -为了便于使用,所有的批处理对象的生命周期都遵循以下规则: - -``` -开始和结束时间在LateUpdate阶段触发; -主线程更新事件在Update阶段触发; -异步更新事件在LateUpdate阶段触发; - -主线程事件在所有事件之后才执行; -``` - -* 安全检查 -在批处理期间是允许销毁的,目前的安全限制仅限在更新前会检查一遍批处理的key值是否为空,在其他时刻,可以通过其他的接口传递的安全检查来辅助更新检查。 -比如在PromptLine2中,如果太早或太迟调用UpdateRender会导致在更新期间捕获到一个空引用的报错,来源是linerenderer组件在此时还不存在,具体原理不清楚,但是只会提示一次,所以此时的渲染操作可以直接跳过。 - ----- -### 获取工具 - - -如果希望获取放置物管理器中的工具: - -``` -// 获取当前激活的工具目标 -DecisionMakerToolBase.ActiveDecisionMaker -// 以及这个工具目标是否有效 -DecisionMakerToolBase.HasAciveDecisionMaker -``` - ----- -#### 按键处理 - -DecisionMakerToolBase中提供了预设的按键处理过程。 - -``` -// 新建一个按键,并指定它要监听的键位 -public static KeyPack Akey = new KeyPack(KeyCode.A); - -// 获取状态,如果定义了多个,则所有按键按下才有效 -Akey.Getkey(); -// 获取包内任意按键按下时 -Akey.GetKeyDown(); -// 获取任意按键释放时 -Akey.GetKeyUp(); -// 获取包内任意按键按下或释放时 -Akey.GetKeyDifferent(); -// 获取包内任意按键按下 -Akey.GetKeyCombinationDown(); -``` - -这个KeyPack内允许传入多个按键值,用于简单判断组合键。 -比如通过Getkey获取状态时,所有按键都按下了才有效。 -可以配合MacroKey中的符合逻辑判断更复杂的逻辑。 - ----- -### 示例文件 - - -在Runtime/HorizonLineOrbit中已经提供了基本的用例,将SesothoPeManager挂到任意一个节点上就可以了。 -运行后按下键盘L键,此时点击世界中layer为defualt的物体,就会点击处y轴为0的位置上生成一个线,移动光标,线也会跟着移动。 - -这些脚本提供了一个基本的示例,并且几乎将所有可以进行配置修改的要素都呈现了出来,可以在后续的扩展中通过参考这些文件来进行实现。 - -在示例脚本中主要分为对元素的实现,以及对过程的实现; -* terminalPoint, TerminalLine2T3, TerminalIland是后续创建的实例所挂载的具有确定空间,绘制方式的实现。 -* 其他的都是管理器,工具,操作栈的实现。 - -其中管理器,工具,操作栈类都是层层嵌套的引用结构,尽量只让相邻的两个过程进行相互的引用,比如工具应该引用管理器的实现,开放给操作栈。 - - ----- -### 使用须知 - - -现在已知的线路绘制问题: -* 如果同时创建大量的操作栈(>500),并在之后的某个时刻中将它们全部隐式地释放掉,有可能会在之后的某个时刻带来庞大的GC占用(>90ms) -* 逆时针绘制的曲线线路在第三象限可能没法计算最近点或计算错误。 +| 版本 | SRP | URP | HDRP | +| --- | --- | --- | --- | +| 2021.3.2f1 | ✔️ | ✔️ | ✔️ | +| 2022.1.24f1 | ✔️ | ✔️ | ✔️ | +| 6000.0.24f1 | ✔️ | ✔️ | ✔️ | \ No newline at end of file diff --git a/Samples.meta b/Resources/Sprite/icon.meta similarity index 77% rename from Samples.meta rename to Resources/Sprite/icon.meta index a451463..dec35c1 100644 --- a/Samples.meta +++ b/Resources/Sprite/icon.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c9a8ab2ab6a3f6848a9c0a06cde9f082 +guid: 2a22253325d2559449e358573af92e05 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Resources/Sprite/icon/icon-PDF.png b/Resources/Sprite/icon/icon-PDF.png new file mode 100644 index 0000000..1a7ecc5 Binary files /dev/null and b/Resources/Sprite/icon/icon-PDF.png differ diff --git a/Resources/Sprite/icon/icon-PDF.png.meta b/Resources/Sprite/icon/icon-PDF.png.meta new file mode 100644 index 0000000..0769621 --- /dev/null +++ b/Resources/Sprite/icon/icon-PDF.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: c60da76721d65ad45ab9bac54c6394ce +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Deconstruction.xml b/Runtime/Deconstruction.xml new file mode 100644 index 0000000..e600b47 --- /dev/null +++ b/Runtime/Deconstruction.xml @@ -0,0 +1,3443 @@ + + + + Deconstruction + + + + + 链路接触点 + + 此框架默认不实现空间坐标的功能,需要后续类实现。 + + 链路接触点用于定义多个物体间的链路结构 + + + + + + 链路数据结构 + + + + + 获取此点在给定线上的法向 + + 注意:这里假定点一定在线的某一端上,所以并不会检查是否相连 + + + + + + + + 获取此点在给定线上的法向 + + 注意:这里假定点一定在线的某一端上,所以并不会检查是否相连 + + + + + + + + 安全地获取此点在给定线上的法向 + + + + + + + + + 安全地获取此点在给定线上的法向 + + + + + + + + + 基本可放置元素 + + 元素中不定义点或法向,后续通过接口实现,目的是为了区分所有的元素。 + 放置元素中需要实现与工具类相关的内容 + + + + + + 放置元素的销毁事件 + + + + + 所有放置元素的唯一标识符,可以用于序列化时引用查找 + + + + + 网格索引,如果成员添加到网格中进行了管理,那么持有这个索引会比较高效。 + + + + + 获取元素的计算边界 + + + + + + 获取元素到向上平面的边界 + + + + + + 显示调试信息 + + + + + 代理更新 + + 这是主线程方法,可以在此进行主要的数据交换操作 + + + + + + 代理更新 + + 这是主线程方法,可以在此进行主要的数据交换操作 + + + + + + 代理后置更新 + + 这是主线程方法,可以在此进行主要的数据交换操作 + + + + + + 代理异步更新之前 + + 这是主线程操作 + + + + + + 代理异步更新 + + 这是异步操作 + + + + + + 代理异步更新之后 + + 这是主线程操作 + + + + + + 当启用代理异步更新时 + + + + + 当从异步代理中退出时 + + + + + 通过反射检查当前实例是否实现了更新函数 + + + + + + 检查所有更新函数 + + + + + + 获取此放置元素的基础代理控制器 + + + + + + 驱使线运行的框架 + + 此框架使用2维计算器,但自身并不保存线的参数。 + + 需要后续类通过SetRenderer额外指定一个渲染器; + 且能够传递计算所需的参数,并调用UpdateRender完成渲染更新。 + + + + + + 渲染线段时获取点的默认步骤长度 + + 1r ≈ 1unity + 注意这是约等于,所以其实不算准确。 + + + + + + 轨迹渲染器 + + + + + 轨迹计算器 + + + + + 链路数据结构 + + + + + 当前的轨迹计算器 + + + + + 当前的轨迹渲染器 + + + + + 弧线计算器 + + + + + 直线计算器 + + + + + 轨迹计算器有效 + + + + + 当前选择使用圆弧计算器 + + + + + 二维线段参数 + + + + + 线段点A + + + + + 线段点B + + + + + 线段点A控制柄 + + + + + 线段点B控制柄 + + + + + 点A控制柄有效 + + + + + 点B控制柄有效 + + + + + 设置值 + + + + + + + + + 选择轨迹计算器枚举 + + + + + 圆弧 + + + + + 直线 + + + + + 初始化轨迹计算 + + + + + 绘制曲线 + + + + + 绘制直线 + + + + + 自动绘制线,根据输入的参数切换直线或曲线绘制。 + + 线参数 + 约束角,指定当前绘制的圆弧必须为一个特定度数 + 延起点法向绘制完整圆弧,否则只绘制半圆弧 + + + + 设置渲染组件 + + + + + + 更新渲染,将当前计算器结果设置到渲染中 + + + + + 分割线 + + + + + 初始化路径线 + + 提供一个用于绘制的组件 + + + + + 建筑物基类(建筑概要) + + + + + 一根线基本的绘制框架,提供基于线渲染器的绘制管理 + + 默认只支持等宽线绘制。 + + + + + + + + + + + 渲染线的线渲染器。 + + + + + 线条宽度 + + + + + 获取材质 + + + + + 线亮度 + + + + + 动画时间 + + + + + 箭头压缩程度 + + + + + 箭头穿插程度 + + + + + 反转箭头 + + + + + 箭头宽度占用比例 + + + + + 背景不透明度 + + + + + 背景色 + + + + + 前景色 + + + + + 线计算长度,用于更新显示的长度 + + + + + 角倒角数量 + + + + + 端点倒角数量 + + + + + 使用世界空间坐标 + + + + + 启用渲染 + + + + + 创建线渲染器,默认是本地空间 + + + + + 设置线渲染器上给定索引的一点 + + + + + + + 设置线渲染器上渲染的所有点(默认将长度限制在给定的范围内) + + + + + + + 将本地坐标转换到世界坐标空间 + + + + + 将世界坐标转换到本地坐标空间 + + + + + 一个拥有具有相连结构的对象所实现的接口,允许获取其中的相连数据结构 + + 其中LinkedData应该指向实现此接口类本地上的一个实现ICoterminous的实例字段 + + + + + + 链接数据 + + + + + 链接数据 + + + + + 将一个成员以指定的链路类型添加到结构中,相应地在对方成员中添加与之对立的结构 + + + + + + 将一个成员从中移除,相应地在对方成员中也移除此对立的结构 + + + + + + + 具有相连的结构数据目标 + + 对目标结构使用Add,与Remove可以添加链接关系 + 通常,具有链接关系的成员都会互相关联,所以可以使用Polarity方式进行添加与移除。 + 链接关系管理允许像链表一样遍历与维护对象,且不用在乎其中的成员类型。 + 另外链接的具体实现与当前成员的特性有关,需要根据具体成员特性进行使用 + + + + + + 将一个成员以指定的链路类型添加到结构中 + + + + + + + + 将一个成员从中移除 + + + + + + 移除所有具有给定链路类型的成员 + + + + + + 将一个成员从中移除,连同移除其反引用 + + + + + + 移除所有具有给定链路类型的成员,连同移除其反引用 + + + + + + 检查一个成员是否存在于结构中 + + + + + + + 获取与之对立的结构(如果有多个,那么会返回第一个) + + 如果没找到,返回空 + + + + 获取与之相同的结构(如果有多个,那么会返回第一个) + + + 如果没找到,返回空 + + + + 获取与给定链接成员对立的结构 + + + + + + + 获取与给定链接成员相同的结构 + + + + + + + 获取与此对立的所有结构 + + 如果没找到,返回空 + + + + 获取与之相同的所有结构 + + + + + + + 获取所有与给定链接成员对立的结构 + + + + + + + 获取所有与给定链接成员相同的结构 + + + + + + + 获取所有结构的数量 + + 返回的是所有有效的成员数量 + + + + + + + 清空结构 + + + + + 清空结构,连同其反引用 + + + + + 交换所有的命令方向 + + 只改变在结构中保存的命令结构方向,不改变数据 + + + + + + 控制对象是否进行调试绘制 + + + + + 是否启用调试绘制(用于可以主动绘制的对象) + + + + + 调试绘制的具体行为(用于无法主动绘制的对象) + + 用于无法自主绘制对象提供的被动绘制方法。 + + + + + + 切割线 + + + + + 获取在指定百分比处分割的轨迹 + + + + + + + + 允许实现此接口的成员被异步更新处理。 + + + + + 异步更新时的优先级,根据优先级进行穿插更新。 + (优先级0 -> oo数值越大优先级越低) + + + + + 由外部管理器协程控制的更新事件 + + 距离上次此成员被更新的时间 + + + + + 由外部管理器异步控制的更新事件 + (请确保其中没有会导致主线程异常的操作) + + + + + + 此处持有的轨迹相关成员,将其开放用于外部快捷获取 + + 所有包含轨迹计算的可放置对象都应该实现此接口,如果是建筑物可以实现另类的渲染器结构。 + 一个可放置对象拥有轨迹接口将代表其拥有轨迹计算的一切必备条件。 + + 注意,其中的三维空间是转为平面向上,二维则是标准xy竖直平面进行变换,两者都会根据当前的物体位置进行变换。 + + + + + + 轨迹渲染器 + + + + + 轨迹计算器 + + + + + 获取此轨迹的点位迭代器,并根据当前实现需求转为水平面世界空间。 + + 迭代步长,1点步长相当于unity中的1m + + + + + 获取此轨迹的点位迭代器,并根据当前实现需求转为立面世界空间。 + + 迭代步长,1点步长相当于unity中的1m + + + + + 获取起点的世界水平面坐标 + + + + + + 获取起点的世界立面坐标 + + + + + + 获取终点的世界水平面坐标 + + + + + + 获取终点的世界立面坐标 + + + + + + 获取起点的世界水平面法线 + (世界空间法线会随着物体世界旋转而旋转) + + + + + + 获取起点的世界立面法线 + (世界空间法线会随着物体世界旋转而旋转) + + + + + + 获取终点的世界水平面法线 + (世界空间法线会随着物体世界旋转而旋转) + + + + + + 获取终点的世界立面法线 + (世界空间法线会随着物体世界旋转而旋转) + + + + + + 获取轨迹长度 + + + + + + 寻找最近的使用线上单位长度驱动的点位 + + + + + + 寻找最近的使用线上单位长度驱动的点位 + + + + + + 寻找最近的使用线上未钳制的单位长度驱动的点位 + + + + + + 寻找最近的使用线上未钳制的单位长度驱动的点位 + + + + + + 获取给定单位长度上的点位 + + + + + + + 获取给定单位长度上的点位 + + + + + + + 获取离给定坐标最近的点 + + + + + + + 获取离给定坐标最近的点 + + + + + + + 线段渲染 + + + + + 检查此渲染组件是否正常 + + + + + 将渲染器切换到世界空间(拖动对象原点将不会改变渲染位置) + + + + + 将渲染器切换到本地空间(拖动对象也会改变渲染位置) + + + + + 设置渲染线段上的一系列点 + + + + + 设置渲染线段上的给定索引的一个点的坐标 + + + + + + + 适用于需要在对象内额外定义操作步骤的成员。 + + + + + 获取操作步骤序列 + + + + + + 用于支持自定义渲染的组件 + + + + + 渲染有效 + + + + + 可序列化的对象后处理 + + + + + 呼叫序列化发生 + + + + + 反序列化前检查标志 + + + 可以继续执行返回真,否则为否 + + + + 呼叫反序列化发生 + + 首先发生的反序列化事件,用于反序列化全局索引,以及一些没有依赖引用关系的参数 + + + + + + 滞后的反序列化发生 + + 比如将引用关系放在滞后反序列化中进行构建,此时全局索引已经构建,所以可以不用考虑目标是否还在序列化等问题。 + + + + + + 空间维度转换,用于2维轨迹中后续对于坐标矢量的描述 + + + + + 强制获取此实现在三维空间中的坐标 + + + + + + 强制获取此实现在地平面中的坐标 + + + + + + 强制获取此实现在纵版空间中的坐标 + + + + + + 强制设置此实现在三维空间中的坐标 + + + + + + 强制设置此实现在地平面中的坐标 + + + + + + 强制设置此实现在纵版空间中的坐标 + + + + + + 获取此轨迹的点位迭代器,无论如何都会返回包含首尾的点坐标。 + + 注意:这是本地空间 + 另外有些时候在计算的最后不满两步长的点可能会被省略。 + + + 迭代步长,1步长接近于unity中的1m + 返回双精浮点的XY值 + + + + 相对原点,如果当前是世界空间,可以使用此项目进行坐标偏移; + 如果当前是本地空间,此项应当为零; + + 注意:此项主要用于设置坐标偏移,是本地空间 + 并且它的坐标可能并不是真的是中心点。 + + + + + + 获取起点法向 + + 注意:这是模拟空间,世界或本地旋转对此无效 + + + + + + + 获取终点法向 + + 注意:这是模拟空间,世界或本地旋转对此无效 + + + + + + + 获取起点坐标 + + 注意:这是模拟空间 + + + + + + + 获取终点坐标 + + 注意:这是模拟空间 + + + + + + + 获取轨迹长度 + + 注意:这是模拟空间,世界或本地缩放对此无效 + + + + + + + 获取给定点在轨迹上的单位长度 + + 注意:这是模拟空间,世界或本地缩放对此无效 + + + 轨迹上的坐标 + 返回的是一个被钳制在0-1之间的值 + + + + 获取给定点在轨迹上未被钳制的单位长度 + + 注意:这是模拟空间,世界或本地缩放对此无效 + + + + + + + + 获取此轨迹上单位长度上的点坐标,注意这不会进行单位长度钳制 + + 注意:这是模拟空间,世界或本地缩放对此无效 + + + 单位长度 + + + + + 获取离给定点最近的点坐标 + + 注意:这是模拟空间,不能与世界空间坐标混用 + + + + + + + + 具有全局唯一标识符的 + + + + + 标识符成员 + + + + + 三维轨迹类接口,实现接口的类可以用于驱动线 + + + + + 二维轨迹类接口,实现接口的类可以用于驱动线 + + + + + 决策者工具,创建一个工具类,来对所有的输入进行决策分离。 + + 说明: + 决策者工具是一种通过输入产生操作的代理工具,所有的操作应该通过决策者工具类代为实现。 + 决策者工具可以在特定的条件下接受来自不同情景的输入(快捷键,或常规操作), + 切换这个决策者工具即可完成对一系列操作的情景快速切换, + 其中包含一系列操作栈,可以同时操作数个对象。 + + 通常情况下只能有一个决策者工具在线,这将会占用静态名额; + 其他启动的决策者工具会关闭当前激活的决策者。 + 不论工具是否启用,都可以调用updateDMTool(),这会自动路由到所需的工具上。 + + 注意: + 工具内异步更新将按顺序执行,这十分缓慢,很可能会因为无法准时完成任务延迟多帧。 + 异步期间无法访问所有的的运行时参数,需要另外为异步创建所需的备份,注意不要给GC带来过大的压力。 + + + + + + 当对象增加时 + + + + + 当对象减少时 + + + + + 所有决策者工具 + + + + + 所有可用的工具数量 + + + + + 获取给定索引下的工具 + + + + + + + 移除工具 + + + + + 当前激活的决策者工具 + + + + + 当前激活的辅助决策者 + + + + + 决策者更新,这会自动路由到当前激活的决策工具上。 + + + + + 按键状态 + + + + + 第一按键状态 + + + + + 第二按键状态 + + + + + 任何键按下 + + + + + 所有使用的按键,一般来说真的要用的按键并不多,而且并不频繁修改。 + + + + + 按键状态快照 + + 如果直接遍历所有按键,将有2ms的GC,并不高效; + 这也是为什么需要先申请一个按键 + + + + + + 检查一个按键是否已经存在 + + + + + + + 请求一个按键处理,以便后续使用 + + + + + + 驳回一个按键处理 + + + + + + 获取按键状态 + + + + + + + 获取上一按键状态 + + + + + + + 获取按键按下时 + + + + + + + 获取按键释放时 + + + + + + + 获取按键状态不一致时(按下或释放) + + + + + + + 获取任意键状态按下时 + + + + + + 第一按键状态 + + + + + 第二按键状态 + + + + + 任何键按下 + + + + + 鼠标状态快照 + + 如果直接遍历所有按键,将有2ms的GC,并不高效; + 这也是为什么需要先申请一个按键 + + + + + + 获取按键状态 + + + + + + + 获取按键按下时 + + + + + + + 获取按键释放时 + + + + + + + 获取按键状态不一致时(按下或释放) + + + + + + + 获取任意键状态按下时 + + + + + + 按键包 + + 包装一个按键事件 + + + + + + 指代按键 + + + + + 鼠标按键 + + + + + 当前按键是键盘 + + + + + 此按键包监听指定的非鼠标按键 + + + + + + 此按键包监听一个指定的鼠标按键 + + + + + + 初期化参数,只针对部分特殊临时状态 + + + + + 获取包装按键状态,如果定义了多个按键,则所有按键都按下了才有效 + + + + + + 获取包装按键按下,如果定义了多个按键,则任意按键按下了都有效 + + + + + + 获取包装按键释放,如果定义了多个按键,则任意按键释放了都有效 + + + + + + 获取包装按键差异,如果定义了多个按键,则任意按键发生差异都有效 + + + + + + 获取包装按键组合按下,当最后一个按键按下时触发 + + + + + + 获取任意按键按下时 + + + + + + 获取按下翻页的按键状态 + + + + + + 获取释放翻页的按键状态 + + + + + + 隐式获取一个按键包的按键 + + + + + + 工具开始执行 + + + + + 工具结束执行 + + + + + 工具是否有效 + + + + + 是否启用批处理异步前置更新 + + 注意:这会带来更大的开销 + + + + + + 是否启用批处理异步后置更新 + + 注意:这会带来更大的开销 + + + + + + 操作栈插槽链表,每个插槽代表一个成员 + + + + + 操作栈插槽列表,这里不用它作为索引依据的原因是因为这是异步的 + + + + + 工具元素父级 + + + + + 工具元素父级有效 + + + + + 开启序列化时的压缩功能 + + 开启后会大大降低占用空间,但会使输出不再具有可读性,并带来一定的性能问题。 + 默认开启。 + + + + + + 创建一个基本操作工具 + + 每个工具中包含一系列的操作栈列,启用工具将直接执行这些操作。 + 当工具中的操作栈全部结束时,工具将会自动关闭。 + 监听工具的开始与结束委托来快速跟踪工具状态。 + + + + + + 销毁工具 + + + + + 初始化工具父级 + + + + + 工具初始构造时 + + + + + 当决策工具启用时,上一个工具会在此之前调用OnDisableTool并结束 + + + + + 当决策工具停用时 + + + + + 工具更新生命周期 + + 基类必须继承,用以实现栈批处理更新 + + + + + + 工具后置更新生命周期 + + 基类必须继承,用以实现栈批处理更新 + + + + + + 当工具被标记为辅助并开始执行时 + + + + + 当工具结束辅助工具时 + + + + + 工具后台主要更新 + + 不建议在后台执行按键操作等关键操作,而是应该将主要逻辑放在当前激活的工具上。 + + + + + + 工具后台后置更新 + + 不建议在后台执行按键操作等关键操作,而是应该将主要逻辑放在当前激活的工具上。 + + + + + + 工具被激活,逻辑递交前台 + + + + + 工具休眠,逻辑递交后台 + + + + + 当工具中的首个操作栈开始使用时 + + + + + 当工具最后一个操作栈结束使用时 + + 基类必须继承,提供必要的结束回调 + + + + + + 决策工具启动过程 + + 对于过程来说_enableTool是常量,可以检查,不能写入 + + + + + + 决策工具关闭过程 + + 对于过程来说_enableTool是常量,可以检查,不能写入 + + + + + + 序列化与反序列化缓冲区 + + + + + 序列化与反序列化缓冲区 + + 只能在工具序列化处理阶段中调用 + + + + + + 序列化类型映射集合 + + + + + 序列化类型映射集合 + + + + + 工具序列化处理 + + 在序列化方法中可以使用: + SerializeTemp作为序列化的缓冲区; + TypeConsignMap作为目标类标识的映射管理; + + 可以使用 SerializeTemp.Add 来添加新的元素,以将其纳入序列化范围; + 并在所有元素添加结束后调用 SerializeTemp.RefreshSerializedContext() 来刷新缓存。 + 如果不刷新缓存会导致所有序列化的内容清零。 + + + + + + + 工具反序列化处理 + + 在反序列化方法中可以使用: + SerializeTemp作为序列化内容的获取; + TypeConsignMap作为目标类标识的映射获取; + + + + 如果传入的集合无法进行序列化,返回否 + + + + 在序列化中添加类型 + + 请在ToolSerializeDispost方法中基类方法之后调用 + + + + + + + + 获取当前反序列化的类型 + + 请在ToolDiserializDispost方法中基类方法之后调用 + + + + 真则代表当前类型有效 + + + + 创建一个操作插槽 + + + + + + + 添加一个现有的操作插槽 + + + + + + 嵌入插槽 + + + + + + 移除一个操作插槽 + + + + + 用新的插槽替换当前插槽 + + + + + + + 查找一个对象在哪个节点中 + + + + + + 清除所有成员 + + + + + 即刻创建一个用于建造的对象 + + 创建成员的连带功能: + * 创建时加入建造队列。 + * 名称是自动按照当前的时间序列给定,全局唯一。 + + + + + + + 创建一个可放置的元素 + + 建造目标的类型 + 目标名称 + + + + + 重做撤回操作的基类 + + + + + 后端控制台工具,直接接收输入按键并构建为字符串 + + + + + 输入更新时 + + + + + 输入文本缓冲区 + + + + + 获取文本 + + + + + 更新按键输入 + + + + + 清除缓冲区 + + + + + 轨迹跟踪工具 + + 轨迹跟踪可以计算出一个受路径影响的光标,用于路径上吸附。 + + 注意:这是一个后台工具,不需要置于前台 + + + + + + 设定追踪器检查范围 + + + + + 跟踪目标坐标(这默认是小型占位模式) + + + + + 跟踪目标(这默认是小型占位模式) + + + + + 目标索引 + + + + + 所有期望获取的通讯目标 + + + + + 世界光标位置 + + + + + 持续获取追踪目标的结构 + + + + + 类型 + + + + + 有效的距离 + + + + + 最近的距离 + + + + + 最近的位置 + + + + + 最近的物体 + + + + + 创建追踪目标权重对 + + + + + 开始计算 + + + + + 结束计算 + + + + + 直接计算过程 + + + + + 根据当前的模式类型计算过程 + + + + + + 清空 + + + + + 获取光标在当前网格中的最近的邻居。 + + 结果会放在类字段: + 吸附坐标:_trackingCurrentPosition + 吸附对象: _trackingCurrentTarget + + + + + + 获取追踪计算器 + + + + + + 创建一个新的追踪计算器 + + 返回一个追踪计算器,这会和其他计算器同时计算,但返回关注点不同的结果 + 注意:这会带来额外的性能开销。 + + + + + + 移除一个追踪计算器 + + 注意,请注意保留至少一个计算器在工具内,全部删除可能导致获取默认值时抛出异常 + + + + + + + + 摄像机视图下输入辅助,用来提供用户在 + + + + + 摄像机换源委托 + + 新的摄像机 + + + + 当主要的摄像机发生变更时 + + + + + 鼠标输入更新委托 + + 鼠标落点有效 + 鼠标在世界中的落点 + + + + 鼠标输入更新 + + + + + 此控制器输入是否启用 + + + + + 此控制器摄像机换源检查是否有效,如果游戏中需要切换摄像机,那么应该开启检查。 + + + + + 获取当前第一个被标记为有效的摄像机。 + (注意:这是惰性属性,获取的是一个本地变量) + + + + + 光标在世界中命中的坐标 + + + + + 光标在世界中的网格吸附坐标 + + + + + 光标在屏幕上的坐标 + + + + + 命中点有效 + + + + + 鼠标光标在世界中的碰撞检测层 + + + + + 鼠标光标在世界中的最大碰撞距离 + + + + + 鼠标光标在世界中吸附的尺寸 + + + + + 调试移动目标 + + + + + 控制是否在世界中绘制光标射线 + + + + + 控制是否在世界中绘制光标附近的网格 + + + + + 更新主要摄像机,随后可以使用_mainCamera获取引用。 + + + + + 获取鼠标在世界空间中的点 + + + + + + + + + 将给定的点吸附到绝对网格 + + 点坐标 + 网格 + + + + + 替换碰撞结果中的坐标 + + + + + + + + 获取一个矢量吸附在此处定义的网格上的值。 + + + + + + 伪造一个射线检测结果 + + 如果不想要进行射线检测,那么在此处提供必要的属性即可创建一个满足要求的射线检测结果。 + (注意:潜在的较大开销方法) + + + 命中位置 + 命中对象 + 返回命中结果 + 命中位置的法向 + 当目标的碰撞检测层不一致时将返回否 + + + + 建造放置元素的管理器,用于控制元素的渲染生命周期 + + 默认开启了输入控制,可以通过EnableInputHelper字段来设定是否启用。 + + 在没有任何工具启动的情况下,管理器可以接收按键输入,直到被工具输入抢占。 + 不过这里并没有抢占逻辑,所以请根据工具激活的逻辑适时关闭按键处理 + + 使用前须知: + 代理生命周期元素需要通过AddEmbedded加入;同时默认关闭主要的更新过程,需要设置EnableUpdate为true; + + + + + + 允许可放置对象的前置更新 + + + + + 允许可放置对象的主要更新 + + + + + 允许可放置对象的后置更新 + + + + + 线材质 + + + + + 点材质 + + + + + 网格原点 + + + + + 晶格尺寸 + + + + + 网格总尺寸 + + + + + 网格最大邻居数量 + + + + + 全体可放置元素的邻居 + + + + + 可放置物对象的批处理列表 + + + + + 全体结构链表 + + + + + 所有结构链表 + + + + + 输入管理器 + + + + + 此管理器的输入代理控制是否有效 + + + + + 线路追踪工具 + + + + + 将一个成员添加到此处的代理生命周期中 + + + + + + + 将一个成员从此处的代理生命周期中移除 + + + + + + + 初始化邻居网格 + + + + + 添加巨大邻居对象 (一个横跨多个网格点的对象称为巨大对象,需要里面包含一个线计算器) + + + + 由外部决定如何变换坐标空间(目标,建议步长)返回点位迭代器 + + + + + + 移除巨大邻居对象 + + + + 由外部决定如何变换坐标空间(目标,建议步长)返回点位迭代器 + + + + 清空此集线器上的所有的索引 + + + + + + + 添加一个相邻元素,用于后续通过坐标进行查找 + + + + + + 移除一个网格元素 + + + + + + 移除一个网格元素 + + + + + + 代理请求一个按键 + + + + + + 代理拒接一个按键 + + + + + + 添加可管理对象到此管理器中 + + 加入的成员可以享受序列化与反序列化服务,以及后续的一系列管理方法 + + + + + + + + 将一个可管理对象从此管理器中移除 + + 移除的成员将无法继续享受序列化服务 + + + + + + + 贝塞尔曲线轨迹计算器 + + + + + 项数 + + + + + 弧形轨迹计算器 + + + + + 长度溢出此范围时,返回为否表示不允许继续绘制 + + + + + 最大弧长计算积分间隔 + + + + + x坐标 + + + + + y坐标 + + + + + x半径 + + + + + y半径 + + + + + 圆弧起点或反转时的终点 + + + + + 圆弧终点或反转时的起点 + + + + + 是否顺向,表示从a到b的轨迹为顺时针,否则为逆时针 + + + + + 制作切向正圆弧 + + 相对坐标 + 切线空间 + 相对坐标 + 交换绘制方向,用于半圆弧与全圆弧切换 + 如果条件不满足则返回否 + + + + 制作切向正圆弧 + + 相对坐标 + 相对坐标 + + 交换绘制方向,用于半圆弧与全圆弧切换 + 如果条件不满足则返回否 + + + + 制作角度约束圆弧(圆弧会自行计算得到一个新的顶点) + + 局部空间 + 切线空间 + 局部空间 + + 交换绘制方向,用于半圆弧与全圆弧切换 + + + + + 制作两法线完全约束圆弧(圆弧参考两个法向的方向进行绘制) + + 局部空间 + 切线空间 + 局部空间 + + 交换绘制方向,用于半圆弧与全圆弧切换 + + + + + 逼近椭圆弧弧长,这是有一定误差的计算方法,具体取决于积分间隔 + + + + + + 积分间隔数 + + + + + 获取正圆弧长 + + 半径 + 起始弧长 + 结束弧长 + 顺向控制 + + + + + 获取弧长 + + 如果当前是非正圆弧,需要设定积分逼近细节,建议保持默认 + + + + + 获取给定弧度上的切线斜率与截距 + + 测量弧度 + 斜率 + 截距 + + + + 获取给定弧度上的坐标 + + 单位是弧度 + 向量的起点与法向 + + + + 获取给定弧度上的切线向量 + + 单位是弧度 + 向量的起点与法向 + + + + 获取给定弧度下的坐标 + + + + + + + 通过二分法确定一个点在圆弧的位置 + + + + + + + 通过投影计算一个点在圆弧上的弧度 + + + + + + + + 通过投影计算一个点在圆弧上的位置(最近的位置) + + + + + + + + 圆弧方向是否顺向,通常在绘制上有顺序之分,顺向表示当前圆弧从点A到点B的顺序是顺时针的 + + 注意:这并不意味着点A和点B的顺序是沿当前表示的顺时针的方向排列的, + + + + + + 把这个圆弧当作正圆弧来获取半径 + + + + + 获取这段圆弧上两个端点形成的角度 + + + + + 获取这段圆弧上两个端点形成的角度 + + + + + 获取正圆圆弧弦长 + + + + + 获取正圆弦高(圆上任意两点间中点垂直到圆弧的距离) + + + + + 弓形高(圆弧的两点间中点到圆心的距离) + + + + + 获取椭圆弧弦长 + + + + + 获取椭圆弧弦高 + + + + + 获取椭圆弧弓形的高 + + + + + 直线轨迹计算器 + + + + + 创建直线 + + + + + + + 创建直线 + + + + + + + + 获取给定坐标点处相当于当前线的单位长度 + + + + + + + 获取给定点坐标处相当于当前线的未钳制单位长度 + + + + + + + 基础轨迹类 + + + + + 弧度转角度 + + + + + 角度转弧度 + + + + + 最大可接受的误差 + + + + + 正循环,三角取整 + + + + + + + + 二维叉乘 + + + + + + + + 极坐标空间转单位空间(指的是将(-π, π)范围的取值转为(0, 1)) + + 极坐标空间 + 此操作不会破坏空间连续性 + + + + 单位空间转极坐标空间(指的是将(0, 1)范围的取值转为(-π, π)) + + 单位极坐标空间 + + + + + 从两线获取相交点(矩阵思想) + + + + + + 获取两线是否相交(矢量变换思想) + + 线1起点 + 线1终点 + 线2起点 + 线2终点 + 输出交点 + + + + + 占用区域,描述一个物体的占用范围,并根据规则遍历这个范围。 + + + + + 关注的占位符类型 + + + + + 小型占位符元素,只占用单个检索网格数据结构 + (占用原点) + + + + + 大型占位符元素,占用一块矩形的地块 + (占用矩形范围) + + + + + 路径占位符元素,使用其中的轨迹占用检索数据结构 + (占用轨迹) + + + + + 异型占位符元素,是其他没有约定的形状。 + (使用其他特殊形状) + + + + + 退出状态,等待所有项目异步执行完毕后退出操作栈 + + + + + 稳定状态 + + + + + 在放置对象时进行按键等待,左键下一步,右键上一步 + + 这是一个模拟双稳态的行为节点, + 通过初始化其中上一步和下一步将要执行的节点目标 + + + + + + 获取退出的方法 + + + + + + 下面捕获的值是有效的 + + + + + 鼠标在场景中的坐标值是有效的 + + + + + 在用户输入下一步时,鼠标在世界的坐标 + + + + + 在用户输入下一步时,鼠标在屏幕上的坐标 + + + + + 下面捕获的值是有效的 + + + + + 鼠标在场景中的坐标值是有效的 + + + + + 在用户输入下一步时,鼠标在世界的坐标 + + + + + 在用户输入下一步时,鼠标在屏幕上的坐标 + + + + + 初始化等待用户输入行为节点的双稳态目标 + + 下一步节点目标 + 上一步节点目标 + + + + 将鼠标的坐标捕获到本地 + + + + + 取消按键检查 + + + + + + 按下继续的按钮 + + + + + + 跳转到上一步 + + + + + 跳转到下一步 + + + + + 操作栈插槽,对应一个需要被工具控制的对象,以及控制它的一系列事件,属性。 + + 操作栈是一个操作行为树,其中遍布插槽,插槽中包含具体行为,并定义了状态转换的过程。 + 操作栈(行为树) -> 操作插槽 -> 行为 -> 状态切换 + + 你可以通过在工具类上调用GenerateOperateSlot来创建一个指定类的插槽, + 切换状态时可以直接new一个新的派生自OperateSlot的类,通过ReplaceThis来切换状态,而不会改变其中的目标成员。 + + + + + + 默认的空操作结构 + + + + + 当前所处的工具类,应当保持引用,当抛弃引用时,说明此插槽已被废弃。 + + + + + 按栈结构顺序的下一个操作栈插槽 + + + + + 按栈结构顺序的上一个操作栈插槽 + + + + + 当前栈表运行到此的路径结构,只有当执行了替换时才会发放值 + + + + + 按时间顺序在此之前的一个栈节点 + + + + + 当前栈节点是否存在时间上的上一个节点 + + + + + 操作目标对象 + + + + + 用新的插槽替换此处的成员,表示此成员切换了状态 + + + + + + 移除自己 + + + + + 更新 + + 在这里进行主要的逻辑切换,使用ReplaceThis(newSlot)来切换流程; + 注意不要进行复杂的操作,减少日志打印的调用。 + + + + + + 开始时 + + + + + 结束时 + + + + + 异步更新前同步更新 + + + + + 异步更新 + + + + + 异步更新后同步更新 + + + + + 全局唯一标识符 + + 可以用于数组标识,其中的id在运行期间不会改变。 + 如果要移除对象,记得先使用Invalidation无效化索引。 + + + + + + 全局唯一计数器,计数器只包含有效的成员数量,不包括虽然存在,但已被回收的成员 + + + + + 回收id,虽然存在,但是不算在全局的id计数中 + + + + + 已经存在的ID + + + + + 检查一个id是否已经存在,时间复杂度接近O(1) + + + + + + + 尝试获取给定的id的引用 + + + + + + + + 标识符ID + + + + + 标识符有效 + + + + + 映射对象 + + + + + 标识符状态 + + + + + 被标记的伪装,或从反序列化得来,这是默认值 + + + + + 正常的标识符状态 + + + + + 标识符正常状态 + + + + + 映射关系正常 + + + + + 创建全局唯一标识符 + + + + + 直接创建一个标识符 + + + + + + + 无效化索引,表示此标识符不再使用,等待回收 + + + + + id是有效的(索引正常,且映射正常) + + + + + + 与ToString对应,可以将一个包含基本标识符的目标转为标识符 + + + + + + + + 隐式获取标识符索引 + + + + + + 群组链接 + + + 线性链接 + + + + + 链接成员链表 + + + + + 连接成员迭代器 + + + + + 组链接映射器 + + + + + 目标 + + + + + 类型 + + + + + 构建一个组链接映射器 + + + + + + + 线性链接 + + + + + 链接成员 + + + + + 将一个成员直接替换到目标上 + + + + + + + 链路扩展 + + + + + 从别人的结构中找到自己 + + 目标 + 自己 + 别人眼中的自己 + + + + 在给定的节点上遍历首个节点,直到结束。 + + 注意:遍历是有限的,你不能无限遍历一个循环链路, + 线路的遍历应该抽象给行为树,由行为树节点在有限的空间中进行遍历。 + + + + 遍历的第一个节点是传入的节点 + + + + 在给定的节点上遍历链路,这是一种辅助遍历的方法 + + 遍历的行为需要在循环体内定义,需要对每次循环提供的回调器设定下一步的目标。 + 如果没有设定目标,或目标未变更,那么再次遍历时,循环将自动退出。 + + 注意:遍历是有限的,你不能无限遍历一个循环链路, + 线路的遍历应该抽象给行为树,由行为树节点在有限的空间中进行遍历。 + + + 起点方向 + + 提供一个遍历描述回调,这在阶段中唯一,首个遍历对象是传入节点本身 + + + + 链路遍历描述回调器 + + + + + 当前目标 + + + + + 定义方向 + + + + + 执行检查 + + + + + 设置下一步的目标 + + + + + + 获取当前目标 + + + + + + 设定下一步的运行方向 + + + + + + 获取下一步的运行方向 + + + + + + 设定当前节点阻塞,下一步可以尝试遍历兄弟节点 + + + + + 获取当前遍历节点的历史 + + + + + + 获取历史节点计数 + + + + + + 链路链接类型 + + 可以与 LinkedPortType 直接相转换 + + + + + + 输入 + + + + + 输出 + + + + + 链路的端口类型 + + 可以与 LinkType 直接相转换 + + + + + + 输出端口 + + + + + 输入端口 + + + + + 翻转连接状态 + + + + + + + 翻转接口状态 + + + + + + + 转换连接状态为接口状态 + + + + + + + 转换接口状态为连接状态 + + + + + + + 绘制路径点集 + + 路径点集是一个世界中用于参考的点的集合。 + + + + + + 此路不通 + + + + + 需要大于1段线才可以拟合的路径 + + + + + 路径点迭代器 + + + + + 运行工况枚举 + + + + + 开始时 + + + + + 正在运行 + + + + + 状态呈递 + + + + + 结束 + + + + + 错误 + + + + + 委托代理事件枚举执行器 + + 给定执行流程,在随后的stepRun中被按阶段执行。 + 可以调用end方法在运行过程中结束事件。 + + + + + + 标记为快速执行,在执行完first后立刻执行run + + + + + 创建一个委托代理,并指定运行时的各项状态 + + 如果没有需要执行或传递的成员,可以返回null + 返回一个枚举器,而不是直接定义成枚举器 + 如果没有需要执行或传递的成员,可以返回null + 快速运行,可能会破坏原有的执行顺序 + + + + 单步执行 + + + 如果执行完毕,返回为否 + + + + 结束执行,需要等到下次执行时才结束 + + + + + 立刻结束执行 + + + + + 操作栈回调 + + + + + 单步设置 + + + + + 单步设置 + + + + + 操作序列器 + + 步骤序列器中包含多个委托构成的步骤,每个步骤都将循环执行, + 通过序列器中预设的方法来控制流程方向。 + + + + + + 操作步骤序列 + + + + + 当前操作序列正在运行 + + + + + 运行 + + + + + 当前活动的操作步骤 + + + + + 单步运行,如果要开始运行,需要先调用StartRun + + 如果运行结束或运行无效,返回否 + + + + 开始运行,接下来允许通过StepRun运行 + + + + + 中止运行,这不会立刻停止运行,而是需要等下下一次单步运行时退出 + + + + + 立刻停止运行,并释放操作栈 + + + + + 添加一个步骤 + + + + + + 清空步骤 + + + + + 当前项目的代理序列化器 + + + + + 变换组件序列化结构 + + + + + 顺序反序列化变换组件 + + + + + + + + 序列化索引结构 + + + + + 创建一个序列化结构 + + + + + + 校验索引 + + 如果当前的情况需要进一步处理,则返回真(比如没目标,不与其他id冲突时) + + + + + 顺序反序列化索引 + + + + + + + + 序列化线性链接 + + + + + 创建一个序列化结构 + + + + + + 顺序反序列化线性链接结构 + + + + + + + + 序列化组链接 + + + + + 创建一个序列化结构 + + + + + + 顺序反序列化组链接 + + + + + + + + 序列化直线轨迹 + + + + + 创建一个序列化结构 + + + + + + 顺序反序列化直线轨迹 + + + + + + + + 序列化圆弧轨迹 + + + + + 创建一个序列化结构 + + + + + + 顺序反序列化圆弧轨迹 + + + + + + + + 废除返工(撤销重做)的接口; + 废除返工不需要被特定的成员实现,应该由控制器代理完成。 + + + + + 废除操作; + 当建造时,这里应该是“销毁”,当从0移动到1时,这里应该是移动到0 + + + + + 返工操作; + 当撤回建造时,这里应该是 + + + + + 当一个废除返工操作因为超出栈而被移除时 + + + + + 撤销重做管理器 + + + + + 重做撤回调用栈 + + + + diff --git a/Runtime/UI/TmpText/TMPHyperlinkManager.cs b/Runtime/UI/TmpText/TMPHyperlinkManager.cs index 8e130c1..c51d6a9 100644 --- a/Runtime/UI/TmpText/TMPHyperlinkManager.cs +++ b/Runtime/UI/TmpText/TMPHyperlinkManager.cs @@ -209,7 +209,9 @@ namespace Deconstruction.UI.TmpText bool requirementHyperlink = true, bool includeRepeatedMarking = false) { - if (!forceRefesh && _tempGetChildrenTmpText2Hyperlink != null && _tempGetChildrenTmpText2Hyperlink.Count > 0) + if (!forceRefesh && + _tempGetChildrenTmpText2Hyperlink != null && + _tempGetChildrenTmpText2Hyperlink.Count > 0) return _tempGetChildrenTmpText2Hyperlink; var children = includeRepeatedMarking diff --git a/Runtime/XericLibrary.dll b/Runtime/XericLibrary.dll index 98eee21..c418d2e 100644 Binary files a/Runtime/XericLibrary.dll and b/Runtime/XericLibrary.dll differ diff --git a/Runtime/XericLibrary.xml b/Runtime/XericLibrary.xml new file mode 100644 index 0000000..656886b --- /dev/null +++ b/Runtime/XericLibrary.xml @@ -0,0 +1,17305 @@ + + + + XericLibrary + + + + + 将unix时间码(s)转为时间 + + + + + + + 服务错误代码正则表达式 + + + + + 获取给定消息中的http报错代码的含义 + + 错误代码信息不可能全面覆盖所有内容,仅提示与对话相关的。 + + + + + + + + + 当前连接客户端 + + + + + 请求体 + + + + + 响应体 + + + + + 流式响应体 + + + + + 制作一个请求 + + 然后你可以通过 + HttpResponseMessage response = await client.SendAsync(request); + 来执行这个请求 + + + 指定请求体内容 + + + + + 直接发送这个请求 + + + + + + + 直接发送这个请求 + + 你可以使用 response.EnsureSuccessStatusCode(); 来检查请求是否正确 + 默认30秒超时 + + + + + + + + 直接发送这个请求 + + 你可以使用 + response.EnsureSuccessStatusCode(); + 来检查请求是否正确 + + + + + + + + 读取响应 + + + + + + + + 读取流式响应 + + + + 静默超时 + + 流结束正则(匹配成功则视为结束) + 流结束正则(匹配成功则视为结束) + 每次流内容如何与原始流拼接 + + + + + 异步流式下载文件 + + + + + + + + 对话模型的api,这里代表Deepseek + + + + + 指定如何将对话系统中,用户发送的一条消息转为api消息 + + + + + 可用的模型名称列表 + + + + + 当前正在传输的响应体 + + + + + 深度求索对话模型类型 + + + + + 深度求索 + + + + + 深度求索最新推出的推理模型 DeepSeek-R1 + + + + + 请求体 + + + + + 消息 + + + + + Possible values: [deepseek-chat, deepseek-reasoner] + 使用的模型的 ID。您可以使用 deepseek-chat。 + + + + + + Possible values: > 1 + 介于 1 到 8192 间的整数,限制一次请求中模型生成 completion 的最大 token 数。输入 token 和输出 token 的总长度受模型的上下文长度的限制。 + 如未指定 max_tokens参数,默认使用 4096。 + + + + + + 一个 object,指定模型必须输出的格式。 + 设置为 { "type": "json_object" } + 以启用 JSON 模式,该模式保证模型生成的消息是有效的 JSON。 + 注意: 使用 JSON 模式时,你还必须通过系统或用户消息指示模型生成 JSON。否则,模型可能会生成不断的空白字符,直到生成达到令牌限制,从而导致请求长时间运行并显得“卡住”。此外,如果 finish_reason="length",这表示生成超过了 max_tokens 或对话超过了最大上下文长度,消息内容可能会被部分截断。 + type string + Possible values: [text, json_object] + Default value: text + Must be one of text or json_object. + + + + + object nullable + 一个 string 或最多包含 16 个 string 的 list,在遇到这些词时,API 将停止生成更多的 token。 + + + + + 如果设置为 True,将会以 SSE(server-sent events)的形式以流式发送消息增量。消息流以 data: [DONE] 结尾。 + + + + + 流式输出相关选项。只有在 stream 参数为 true 时,才可设置此参数。 + include_usage boolean + 如果设置为 true,在流式消息最后的 data: [DONE] 之前将会传输一个额外的块。此块上的 usage 字段显示整个请求的 token 使用统计信息,而 choices 字段将始终是一个空数组。所有其他块也将包含一个 usage 字段,但其值为 null。 + + + + + + + 模型可能会调用的 tool 的列表。目前,仅支持 function 作为工具。使用此参数来提供以 JSON 作为输入参数的 function 列表。最多支持 128 个 function。 + + + + + 控制模型调用 tool 的行为。 + none 意味着模型不会调用任何 tool,而是生成一条消息。 + auto 意味着模型可以选择生成一条消息或调用一个或多个 tool。 + equired 意味着模型必须调用一个或多个 tool。 + 通过 {"type": "function", "function": {"name": "my_function"}} + 指定特定 tool,会强制模型调用该 tool。 + 当没有 tool 时,默认值为 none。如果有 tool 存在,默认值为 auto。 + + + + + 是否返回所输出 token 的对数概率。如果为 true,则在 message 的 content 中返回每个输出 token 的对数概率。 + + + + + + 响应体 + + + + + 该对话的唯一标识符。(格式如 5317a25b-c272-4145-8105-325c6b4bbd00) + + + + + 模型生成的 completion 的选择列表。 + + + + + Possible values: [chat.completion] + 对象的类型, 其值为 chat.completion。 + + + + + 创建聊天完成时的 Unix 时间戳(以秒为单位)。 + + + + + 生成该 completion 的模型名。 + + + + + 该对话补全请求的用量信息。 + + + + + 该指纹表示模型运行时使用的后端配置。(如 fp_3a5770e1b4) + + + + + 获取索引消息下的消息 + + + + + + + 获取索引消息下的推理内容 + + + + + + + 获取索引下的选择 + + + + + + + + 对话中包含模型返回的索引,通过这个索引获取 + + + + + + + + 流式响应体 + + + + + 该对话的唯一标识符。 + + + + + + + + + + 创建聊天完成时的 Unix 时间戳(以秒为单位)。流式响应的每个 chunk 的时间戳相同。 + + + + + 生成该 completion 的模型名。 + + + + + 该指纹表示模型运行时使用的后端配置。 + + + + + Possible values: [chat.completion.chunk] + 对象的类型, 其值为 chat.completion.chunk。 + + + + + 该对话补全请求的用量信息。 + + + + + 联合多个对话响应内容 + + + + + + 添加一个报错在末尾 + + + + + + 消息中包含内容 + + + + + + 消息中包含推理过程 + + + + + + 获取消息内容 + + + + + + + 获取消息内容 + + + + + + + 获取一系列增量消息,并确保消息属于给定的索引 + + + + + + 消息 + + + + + 该 completion 的内容。 + + + + + 仅适用于 deepseek-reasoner 模型。内容为 assistant 消息中在最终答案之前的推理内容。 + + + + + 模型生成的 tool 调用,例如 function 调用。 + + Array [ + id:string / /tool 调用的 ID。 + type:string // Possible values: [function] + // tool 的类型。目前仅支持 function。 + function:object // 模型调用的 function。 + { + name:string // 模型调用的 function 名。 + arguments:string // 要调用的 function 的参数,由模型生成,格式为 JSON。 + // 请注意,模型并不总是生成有效的 JSON,并且可能会臆造出你函数模式中未定义的参数。在调用函数之前,请在代码中验证这些参数。 + ] + + + + + + Possible values: [assistant] + 生成这条消息的角色。 + + + + + 创建一条消息 + + + + + + + 响应格式 + + + + + 响应内容选择 + + + + + 该 completion 在模型生成的 completion 的选择列表中的索引。 + + + + + 模型生成的 completion 消息。 + + + + + 该 choice 的对数概率信息。 + + + + + 完成响应(比如会返回“stop”) + + + + + 流式响应内容选择 + + + + + 流式返回的一个 completion 增量。 + + + + + Possible values: [stop, length, content_filter, tool_calls, insufficient_system_resource] + 模型停止生成 token 的原因。 + stop:模型自然停止生成,或遇到 stop 序列中列出的字符串。 + length :输出长度达到了模型上下文长度限制,或达到了 max_tokens 的限制。 + content_filter:输出内容因触发过滤策略而被过滤。 + insufficient_system_resource: 由于后端推理资源受限,请求被打断。 + + + + + 该 completion 在模型生成的 completion 的选择列表中的索引。 + + + + + 流式响应增量内容 + + + + + completion 增量的内容。 + + + + + 仅适用于 deepseek-reasoner 模型。内容为 assistant 消息中在最终答案之前的推理内容。 + + + + + Possible values: [assistant] + 产生这条消息的角色。 + + + + + token对数概率信息列表 + + + + + 输出的Token + + + + + 该 token 的对数概率。-9999.0 代表该 token 的输出概率极小,不在 top 20 最可能输出的 token 中。 + + + + + 一个包含该 token UTF-8 字节表示的整数列表。一般在一个 UTF-8 字符被拆分成多个 token 来表示时有用。如果 token 没有对应的字节表示,则该值为 null。 + + + + + 一个包含在该输出位置上,输出概率 top N 的 token 的列表,以及它们的对数概率。在罕见情况下,返回的 token 数量可能少于请求参数中指定的 top_logprobs 值。 + + + + + 响应花费 + + + + + 响应花费细节 + + + + + 创建一个对话 + + + + + 释放对话 + + + + + 一个示例方法,直接发送一个预制的请求消息 + + 用户消息 + 系统提示词,比如:You are a helpful assistant + + + + + 发送请求消息 + + + + + + + 发送流式请求消息 + + + 流更新事件,其中的响应体在更新期间始终保持增量更新 + 如果处 + + + + 提供可识别的角色名称 + + + + + + + 获取错误代码对应的解析 + + + + + + + + 大模型对话系统,这里是保存对话的,可以让ChatApi调用这里,而不是让这里调用api + + + + + 对话标题 + + + + + 对话链 + + + + + 系统角色名称 + + + + + 用户角色名称 + + + + + 助手角色名称 + + + + + 断言角色名称 + + + + + 对话角色 + + + + + 系统 + + + + + 用户 + + + + + 助手 + + + + + 断言(用于报错信息,计入对话,但不发送) + + + + + 对话链 + + + + + 所有对话列表 + + + + + 上一次对话的id + + + + + 新的对话记录 + + + + + + + + 将对话历史移动到之前的对话中 + + + + + + 获取自给定对象以来的一系列对话链(这是倒叙) + + 查找对话目标 + 对话链长度(不分对话发送者是谁) + 包含最开始的系统提示词 + + + + + 获取给定长度上到给定消息的一系列对话链 + + 查找对话目标 + 对话链长度(不分对话发送者是谁) + 包含最开始的系统提示词 + + + + + 对话消息 + + + + + 上一条对话 + + + + + 下一条对话 + + + + + 对话id + + + + + 内容 + + + + + 推理过程 + + + + + 角色 + + + + + 时间码 + + + + + 当前时间 + + + + + 添加下一个对话 + + + + + + + 创建一个对话系统 + + 标题不是必要的,但是对于快速浏览对话内容有帮助 + + + + 获取角色名称 + + + + + + + 具有基本缩放的碰撞器基类 + + + + + 碰撞处理流程 + + + + + 处理等级 + + + + + 表示序列等级是否不需要处理 + + + + + 盒体尺寸信息 + + + + + 启用轴向 + + + + + 碰撞器集合 + + + + + 使列表等级完全不重复 + + + + + 盒体的AABB碰撞器 + + + + + 半径 + + + + + 暂停协程 + + + + + 异步协程 + + + + + 程序集反射帮助类 + + + + + 加载类型 + + + + + 当前执行的程序集,在当前情境下只会查找DLL中的标记 + + + + + 当前的进入程序集,可以认为是整个主程序。 + + + + + 当前发生调用的程序集,是动态的,如果是静态构造函数,或其他例如入口点中发生的调用,则会为空 + + + + + 当前给定的类所在的程序集,是动态的。 + + + + + 获取程序集 + + + + + + + + 获取程序集 + + + + + + + + 获取程序集 + + + + + + + + + 可以通过反射找到的属性元素 + + 这个查找可以是通过名称在场景中查找同名组件。 + + + + + + 全局可查找组件 + + + + + 一个用于标记的全程 + + + + + 标记此处的属性可以被全局查找 + + + + + 在程序集中构建可查找元素集 + + + + + + 在字段上寻找给定特性 + + 类 + 类中字段名 + + + + + 在实例上寻找给定特性 + + 类 + 类中字段名 + + + + + 游戏开始直接调用方法标记(需要先导接口) + + + + + 游戏方法调用标记类型 + + + + + 自定义菜单特性。 + 用于使用特性来自动化构建菜单。 + + + + + 完整的路径名称 + + + + + 层级路径 + + + + + 当前特性对应各级类型 + + + + + 当前特性代表的完整类型 + + + + + 创建一个自定义菜单特性,指定其基础类型,以及对嵌套类 + + 分类名称,如果需要分级,请使用‘/’分割 + 目标类型,如果是嵌套类型,需要将最底层的类型放在首位,以此类推 + + + + 多个互相影响的属性菜单 + + + + + 多个互相影响的方法菜单 + + + + + 菜单属性管理器 + + + + + 所有属性字典 + 属性键值包含hash,不能直接使用路径进行查找 + + + + + 使用实例进行属性查找 + + 目标实例 + 路径 + 返回值 + + + + + 使用实例进行属性查找 + + 目标实例 + 路径 + 返回值 + + + + + 获取当前属性的哈希路径名称 + + + + + 尝试将一个哈希路径名称重算为哈希 + + + + + + + + 添加目标 + 同类项目将使用哈希代替 + + + + + + 移除目标 + + + + + + 清除所有目标 + + + + + 在实例上寻找给定特性 + + 目标 + 字段名 + + + + + 在目标类上寻找给定特性 + + 类 + 字段名 + + + + + 返回目标类上的所有菜单特性 + + + + + 自制属性集合 + + + + + 属性信息对应的实例 + + + + + 属性信息 + + + + + 属性特性 + + + + + 访问属性 + + + + + 属性菜单 + + + + + 方法菜单 + + + + + 严格模式特性(只能用于Xeric严格脚本上) + + + + + 必须调用基类 + + + + + + 获取一个字段名称,并转为GUIContent + + 字段所处的类 + 字段名称 + + + + + 获取给定定义名称的字段上的rename特性名。 + + 字段所处的类 + 字段名称 + + + + + 尝试获取其中的rename定义名称 + + + 通过特性获取的名称,如果没有则为原生的名称 + 是否成功通过特性获取名称 + + + + 在字段上寻找此重命名特性 + + 类 + 类中字段名 + + + + + xeric的验证 + + + + + 获取加密结构 + + + + + + 从内容中获取识别码 + + + 如果内容无法识别,则为否 + + + + 本地机器识别码 + + + + + 检查验证通过 + + + + + 本地已注册的机器 + + + + + 验证信息 + + + + + 时间熔断位 + + + + + 所有版本熔丝 + + + + + 机器识别码 + + + + + 许可起始时间(tick) + + + + + 许可结束时间(tick) + + + + + 熔断位 + + + + + 创建一个验证信息 + + 版本,范围在[65534, 1], 65535和0代表无效的版本 + + + + 检查缓存中的id是否与现在设备的id一致 + + + + + + 尝试验证许可时间 + + + + + + 检查时间熔丝位 + + + + + + 破坏时间熔丝位 + + + + + 设置版本 + + + 当版本更新时,返回真 + + + + 验证版本 + + + + + + 创建一个新的验证标识 + + + + + 本地验证 + + + + + IPv4黑名单 + + + + + IPv4白名单 + + + + + 本地计算机IPv4在黑名单中 + + + + + + 本地计算机IPv4在白名单中 + + + + + + 检查本地计算机是否通过所有黑白名单的规则 + + + + + + + 敏感程度 + + + + + 只要不在黑名单中都行 + + + + + 不允许黑名单,但白名单优先级更大 + + + + + 不允许任何非白名单,且黑名单优先级更大 + + + + + 机器信息 + + + + + 获取计算机名称,也是计算通讯时的网络名称 + + + + + 获取首个CPU的名称 ( 格式: Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz ) + + + + + + 获取首个CPU的时钟速度 ( 格式: 2904 (基准速度是 2.90GHz)) + + + + + + 获取首个CPU的唯一ID ( 格式:BFEBFBFF000A0655 ) + + + + + + 获取首个CPU的逻辑处理器数量(这很有可能查询失败) + + 总核心数 + 逻辑处理器 + + + + + 获取内存物理位置 + + + + + + 获取内存容量字节 格式:17179869184 Bits (实际容量 16 Gibigits) + + + + + + 获取内存类型 格式:0 + + + + + + 获取内存速度 格式:2667 (实际 2666 MHz) + + + + + + 获取内存尺寸规格 格式:8 + + + + + + 获取内存纠错型 + + + + + + 获取硬盘的唯一ID ( 格式:WD-WX42A805R1H0 E823_8FA6_BF53_0001_001B_448B_48D3_C71B.3200BBBBAAAA ) + + + + + + 查询物理分区数量 + + + + + + 查询逻辑分区数量 + + + + + + 查询硬盘容量 + + + + + + 查询硬盘可用空间大小 + + + + + + 获取硬盘空间占用的完整信息 + + + + + + 字节格式化 + + + + + + + 获取机器序列码字符串 + + + + + + 获取机器序列哈希 + + + + + + 创建时间 + + + + + 计算机名称 + + + + + 执行WQL查询命令,并直接返回所有属性的名称内容 + + 查询命令 + 查询属性名称 + + + + + ip助手 + + + + + 获取本机的所有ip + + + + + + 获取本机IPv4版本的地址 + + + + + + 获取本机IPv6版本的地址 + + + + + + 利用本地链接UDP套接字,然后读取本地端点的方式获取本机IP,可以直接确定使用的ip + + + + + + 检索本地计算机的所有WLAN IP地址,并返回自己的ip + + + + + + 获取本机名称 + + + + + 遍历局域网工作组或域中的计算机 + + + + + 获取一个局域网中给定计算机名称设备的ip地址 + + + + + + 尝试 ping 局域网 ip + + + + + + + 尝试 ping 局域网中的所有机器,这是一个比较漫长的过程,所以他是异步的 + + 子网掩码, 默认 192.168.0.x + + + + 异步等待操作 + + 是否继续等待, 否表示继续,真表示退出异步等待 + 报错内容,超时时显示 + 超时时间(秒) + + + + + 配置宏 + + + + + 保存uri配置文件 + + 自行完毕状态 + + + + 读取uri配置文件 + + 自行完毕状态 + + + + 协议 + + + + + 主机名 + + + + + 最终路径,最后的斜杠会影响uri的处理 + + + + + 在列表中搜索名称,如果没找到,返回一个空字符串 + + + + + + + + 通过名称获取路径uri + + + + + + + + 处理一段路径中的占位符,将其替换为目标符号 + + + + + + + + 添加一个配置项 + + + + + + + 移除一个配置项 + + + + + + 移除一个配置项 + + + + + + 设置一个配置项 + + + + + + + 名称 + + + + + 值 + + + + + 静态类型,生成时固定类型,如果后续设置类型不同将拒绝赋值 + + + + + 是否为空,不检查值是否为空,而是置标志位 + + + + + 类型 + + + + + 调试宏,重载unity的日志输出效果 + + + + + 开始替换日志输出器 + + + + + 结束替换日志输出器 + + + + + 彩色日志 + + + + + + 彩色日志 + + + + + + 彩色警告 + + + + + + 彩色抛出 + + + + + + 彩色断言 + + + + + + 彩色错误 + + + + + + 菜单宏 + + + + + 值为空时显示的文本 + + + + + 数值格式化格式 + + + + + 字符太长时替换样式 + + + + + 呈献值 + + + + + 值为空时显示的文本 + + + + + 数值格式化格式 + + + + + 字符太长时替换样式 + + + + + 名称及标识符 + + + + + 值处理器 + + + + + 承载对象 + + + + + 格式包裹器 + + + + + 创建一个呈现组 + + + + + + + + + + + 添加一个值 + + + + + + + + + + + + + 创建一个值 + + + + + + + + + + + + + 创建一个值 + + + + + + + + + + + + 对象计算器 + + + + + 设置值 + + + + + + + 获取值 + + + + + + + 值计算器 + + + + + + 值步骤长度 + + + + + 取整方向 + + + + + 设置值 + + + + + + 获取值 + + + + + + 设置值 + + + + + + 浮点数计算器 + + + + + 浮点数计算器 + + + + + 浮点数计算器 + + + + + 检查当前变换组件上是否发生盒体碰撞 + + + + + + + 检查当前变换组件上是否发生盒体碰撞 + + + + + + + + + 检查盒体范围是否发生碰撞(或在某个碰撞体内) + + + + + + + + + + + 检查胶囊体范围是否发生碰撞(或在某个碰撞体内) + + + + + + + + + + + 检查球体范围是否发生了碰撞(或在某个碰撞体内) + + + + + + + + + + 命令控制台面板宏 + + 脚本中将监听的命令注册到此,当用户输入时,也可以通过这里的字典进行查找。 + 命令需要有一个开启词,自动补全也仅支持开启词补全。 + 命令后的参数将会由具体目标处理。 + + + + + + 命令 + + + + + 继承中间件 + + + + + 执行命令 + + + + + 当前进程ID + + + + + 通过程序名称查询窗口句柄 + + + + + + + + 枚举窗口回调委托 + + 窗口句柄。 + 应用程序定义值。 + + + + + 通过将句柄传递到每个窗口,进而将传递给应用程序定义的回调函数,枚举屏幕上的所有顶级窗口。 + 枚举窗口 将一直持续到最后一个顶级窗口被枚举或回调函数返回 FALSE。 + + EnumWindows 函数不枚举子窗口,但系统拥有的几个具有WS_CHILD样式的顶级窗口除外。 + 此函数比在循环中调用 GetWindow 函数更可靠。 + 调用 GetWindow 以执行此任务的应用程序有被捕获到无限循环或引用已销毁窗口的句柄的风险。 + + + + 指向应用程序定义的回调函数的指针。 + 要传递给回调函数的应用程序定义值。 + 如果该函数成功,则返回真 + + + + 检索指定窗口的父级或所有者的句柄。 + 若要检索指定上级的句柄,请使用 GetAncestor 函数。 + + 如果函数失败,则返回值为 NULL。 要获得更多的错误信息,请调用 GetLastError。 + + 此函数通常由于以下原因之一而失败: + 该窗口是无所有者或没有 WS_POPUP 样式的顶级窗口。 + 所有者窗口具有 WS_POPUP 样式。 + + + + + 如果窗口是子窗口,则返回值是父窗口的句柄。 如果窗口是具有 WS_POPUP 样式的顶级窗口,则返回值是所有者窗口的句柄。 + + + + 检索创建指定窗口的线程的标识符,以及创建该窗口的进程(可选)的标识符。 + + + 窗口的句柄。 + 指向接收进程标识符的变量的指针。 如果此参数不为 NULL, 则 GetWindowThreadProcessId 会将进程的标识符复制到变量;否则,它不会。 如果函数失败,则变量的值保持不变。 + 如果函数成功,则返回值是创建窗口的线程的标识符。 如果窗口句柄无效,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。 + + + + 找到当前进程下的窗口句柄 + + + + + + 找到当前进程下的所有窗口句柄 + + 如果发生错误,返回null + + + + 所有窗口展示命令 + + + + + + 隐藏窗口并激活另一个窗口 + + + + + 激活并显示窗口。如果窗口最小化、最大化或排列,系统会将其还原到其原始大小和位置。应用程序应在首次显示窗口时指定此标志 + + + + + 同 ShowNormal + + + + + 激活窗口并将其显示未最小化窗口 + + + + + 激活窗口并显示未最大化的窗口 + + + + + 同 ShowMaximized + + + + + 以最近的大小和位置显示窗口。 此值类似于 SW_SHOWNORMAL,只是窗口未激活。 + + + + + 激活窗口并以当前大小和位置显示窗口。 + + + + + 最小化指定的窗口,并按 Z 顺序激活下一个顶级窗口。 + + + + + 将窗口显示为最小化窗口。 此值类似于 SW_SHOWMINIMIZED,但窗口未激活。 + + + + + 以当前大小和位置显示窗口。 此值类似于 SW_SHOW,只是窗口未激活。 + + + + + 激活并显示窗口。 如果窗口最小化、最大化或排列,系统会将其还原到其原始大小和位置。 还原最小化窗口时,应用程序应指定此标志。 + + + + + 根据启动应用程序的程序传递给 CreateProcess 函数的 STARTUPINFO 结构中指定的SW_值设置显示状态。 + + + + + 最小化窗口,即使拥有窗口的线程没有响应。 仅当最小化不同线程的窗口时,才应使用此标志。 + + + + + 设定窗口的显示状态 + + + 窗口句柄 + 指定窗口如何显示。如果发送应用程序的程序提供了StartUpInfo结构,则应用程序的第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMain中nCmdShow参数。 + 如果窗口以前就可见,返回真,否则返回否 + + + + 设定窗口的显示状态,而无需等待操作完成 + + + 窗口句柄 + 指定窗口如何显示。如果发送应用程序的程序提供了StartUpInfo结构,则应用程序的第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMain中nCmdShow参数。 + 如果操作已成功启动,则返回真 + + + + 矩形信息 + + + + + 监视器信息 + + + + + 结构体大小 + + + + + 物理分辨率和位置 + + + + + 工作区域(排除任务栏) + + + + + 标志位(如主显示器) + + + + + 设备名称 + + + + + + + 设备上下文(DC) + 剪辑区域 + + 自定义数据 + + + + + 显示器拷贝信息 + + + + + 刷新所有显示器信息 + + + 返回显示器原始信息 + + + + 消息宏 + + + + + 基础消息 + + + + + 业务消息 + + + + + + 重定向文本消息发送(一般定向到消息发送方法上) + + + + + 所有委派成员 + + + + + 无参委派成员 + + + + + 启用自动转换 + + 让委派成员更智能地通过cast函数来传播消息里的内容; + 具体来说,当消息里的内容是一个对象结构时,而输出是string类型,这时json反序列化会报错, + 但使用自动转换会尝试通过其他方法获取到里面的内容。 + + + + + + 自动调用委托 + + + + + + 一个参数的委派成员 + + + + + + 注册一个重定向消息处理,这会通过消息事件处理 + + + + + + 注册一个重定向且带有具体类型的消息处理 + + 尽管在每个委托实现的前面注册重定向会比较符合阅读习惯,但是这样会导致只能注册一个寂寞(因为在还没有任何成员注册以前,它只是一个null) + + + + + + + + + 向这里发送重定向消息 + + 由于消息很可能不是在主线程运行的,所以这里只是保存. + 需要在主线程上手动调用MainThreadProcessingMessage来处理消息 + + + + + + + 在主线程上处理消息 + + + + + 获取安全的消息,过程中发生的错误均会通过消息链路进行向上传递 + + + + + + + 将对象序列化为消息 + + + + + + + + + 发送消息的扩展 + + + + + + 发送对象的扩展 + + + + + + + + 直接获取事件名称 + + + + + + + 直接获取事件成员 + + + + 是否沉默,如果为真,则不会输出错误信息 + + + + + 直接获取事件成员 + + + + + + + + + 可以调用的目标封装 + + + + + 调用承载 + + + + + 示例方法封装 + + 目标实例 + 方法名称 + + + + 示例方法封装 + + 目标实例 + 方法名称 + 参数类型 + + + + 实例方法封装 + + 目标实例 + 方法名称 + 参数对象 + + + + 实例方法封装 + + 目标实例 + 方法名称 + + + + 实例方法封装 + + 目标实例 + 方法名称 + 参数类型 + + + + 实例方法封装 + + 目标实例 + 方法名称 + 参数对象 + + + + 调用 + + + + + + 设置参数 + + + + + 添加委托封装对象 + + + + + + 通过名称召唤委托封装 + + + + + + + 尝试通过名称召唤委托封装 + + + + + + + + 移除一个委托封装目标 + + + + + + + 对象池宏 + + + + + 对象池组件列表 + + + + + 获取对象池对应的哈希双子列表,如果此对象池已经对应了另一个数据集合,则失败 + + + + + + + + + 从对象池列表中销毁组件 + + + + + + + + + 可以直接通过 + 关于批量释放,可以使用pool + + + + + + 加入创建过程(不需要提供创建方法) + + + + + 加入获取过程(实例对象,理论索引) + + + + + 加入释放过程 + + + + + 加入销毁过程(可以执行销毁方法) + + + + + 获取一个池化对象 + + + + + + 获取一个池化对象,并获取上面的一个组件 + + + + + + + + 获取一个池化对象,并获取上面的多个组件 + + + + + + + + + + 获取一个池化对象,并获取上面的多个组件 + + + + + + + + + + + + 获取一个池化对象,并获取上面的多个组件 + + + + + + + + + + + + 获取一个池化对象,并获取上面的多个组件 + + + + + + + + + + + + 获取一个池化对象,并获取子项上的组件 + + + + + + + + 获取一个池化对象,并获取子项上的组件 + + + + + + + + 获取一个池化对象,并获取子项上的组件 + + + + + + + + 获取一个池化对象,并获取子项上的组件 + + + + + + + + 获取一个池化对象,并获取子项上的组件 + + + + + + + + 进入推迟获取区间 + + + + + 获取一个池化对象,并获取上面的一个组件 + + + + + + + + 获取一个池化对象,并获取上面的组件 + + + + + + + + 获取一个池化对象,并获取上面的组件 + + + + + + + + 获取一个池化对象,并获取上面的组件 + + + + + + + + 获取一个池化对象,并获取上面的组件 + + + + + + + + 结束当前推迟获取组件 + + + + + 径直释放一个对象 + + + + + + 将给定的对象的任意子项用于释放对象 + + + + + + 释放所有对象 + + + + + 对象径直池化(也就是说这个对象可以使用径直释放方法) + + + + + + + 通过枚举器生成伴随循环的池化实例项目 + + + + + + + + 获取所有激活的池化项目 + + + + + + 信标,用于查找 + + + + + 对象池设置 + + + + + 对象池 + + + + + 激活对象的字典 + + + + + 非激活对象的列表 + + + + + 所有激活的对象 + + + + + 激活对象与索引 + + + + + 未激活对象列表 + + + + + 初始化设置对象 + + + + + + 移动一个元素到激活列表中 + + + + + 移动一个元素到非激活列表中 + + + + + 在非激活列表中移除元素 + + + + + 检查池化对象是否有效 + + + + + + + 检查池化对象是否无效 + + + + + + + 检查对象是否池化 + + + + + + + 尝试获取当前对象的数据 + + + + + + + + 释放所有对象 + + + + + 对象池联合参数 + + + + + 对象索引 + + + + + 快速创建一个UI对象池 + + 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 + 并且会监控创建的顺序,将其按照获取的顺序排列 + + + 对象池管理组件类型 + 预制体对象 + 对象池预设父级 + 在释放时检查对象,如果对象是刚建立的成员将会弹出报错 + 初始的池深度,这只是声名深度,并不会立刻创建对象 + 池最大深度,多余的对象将在释放时直接销毁 + 设置对象 + + + + + 快速创建一个UI对象池 + + 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 + 并且会监控创建的顺序,将其按照获取的顺序排列。 + + + 对象池管理组件类型 + 预制体对象 + 对象池预设父级 + 如何从对象获取组件 + 如何从组件获取对象 + 额外的获取方法 + 额外的释放方法 + 在释放时检查对象,如果对象是刚建立的成员将会弹出报错 + 初始的池深度,这只是声名深度,并不会立刻创建对象 + 池最大深度,多余的对象将在释放时直接销毁 + 设置对象 + + + + + 快速创建一个对象池 + + 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 + + + + + + + + + 快速创建一个对象池 + + 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 + + + + + + + + + 快速创建一个对象池 + + 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 + + + + + + + + + 快速创建一个对象池 + + 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 + + + + + + + + + 在释放时检查对象,如果对象是刚建立的成员将会弹出报错 + + + + + + + 数学库 + + + + + 世界向上表面转换包围尺寸的方法 + + + + + + + 世界向上表面转换包围尺寸的方法 + + + + + + + 世界向前表面转换包围尺寸的方法 + + + + + + + 世界向前表面转换包围尺寸的方法 + + + + + + + 世界向前表面转换包围尺寸的方法 + + + + + + + 获取模型在世界中的边界范围 + + + + + + + + 获取MeshFilter中模型在世界中的边界范围 + + + + + + + 将一个边界范围添加到另一个边界范围内,新的边界范围可以同时容纳两个边界范围。 + + + + + + + + 转换弧度到角度 + + + + + + + 转换弧度到角度 + + + + + + + 转换角度到弧度 + + + + + + + 转换角度到弧度 + + + + + + + 任意单位转换 + + 输入数值 + 输入单位 + 输出单位 + + + + + (压力转换) 磅/平方英尺 -> 兆帕斯卡 + + + + + + + (压力转换) 磅/平方英寸 -> 兆帕斯卡 + + + + + + + (压力转换) 磅/平方英寸 -> 兆帕斯卡 + + + + + + + 弧度转角度 + + + + + 弧度转角度 + + + + + 弧度转角度 + + + + + 角度转弧度 + + + + + 角度转弧度 + + + + + 角度转弧度 + + + + + 英寸 转 厘米 + + + + + 英尺 转 英寸 + + + + + 码 转 英尺 + + + + + 英里 转 码 + + + + + 海里 转 英里 + + + + + 微米 转 纳米 + + + + + 毫米 转 微米 + + + + + 厘米 转 毫米 + + + + + 米 转 厘米 + + + + + 千米 转 米 + + + + + 巴 转 毫巴 + + + + + 千帕斯卡 转 帕斯卡 + + + + + 兆帕斯卡 转 千帕斯卡 + + + + + 千磅 转 磅 + + + + + 圆周率常熟 + + + + + π(PI) + + + + + π(PI) + + + + + π(PI) + + + + + 圆周率的2倍 + + + + + π(PI)乘2,是τ(tau) + + + + + π(PI)乘2,是τ(tau) + + + + + π(PI)乘2,是τ(tau) + + + + + π(PI)除2 + + + + + π(PI)除2 + + + + + π(PI)除2 + + + + + 自然对数的底 + + 自然常数,符号e,为数学中一个常数,是一个无限不循环小数,且为超越数,其值约为2.718281828459045。 + 它是自然对数函数的底数。有时称它为欧拉数(Euler number),以瑞士数学家欧拉命名; + 也有个较鲜见的名字纳皮尔常数,以纪念苏格兰数学家约翰·纳皮尔(John Napier)引进对数。 + + + + + + 毕达哥拉斯常数,√2 的算术平方根 + + + + + 欧拉常数 + + 欧拉常数又称 欧拉-马歇罗尼常数(Euler-Mascheroni constant) + 是一个主要应用于数论的数学常数。它的定义是调和级数与自然对数的差值的极限。 + + + + + + 黄金分割数 + + 把一条线段分割为两部分,使较大部分与全长的比值等于较小部分与较大的比值,则这个比值即为黄金比。 + 其比值近似值为0.618。 + + + + + + 黄金分割数 + + + + + 黄金分割数 + + + + + 黄金分割数 + + + + + 第一费根鲍姆常数 + + + + + 第二费根鲍姆常数 + + + + + 费根鲍姆常数,是周期分叉及混沌现象的一个比值,可用于人口变化,水滴周期等现象 + + + + + 孪生质数常数 + + + + + Meissel-Mertens常数、质数倒数和常数 + + + + + 孪生质数之布朗常数 + + + + + 四胞胎质数(Prime Quadruplet)之 布朗常数 + + + + + 德布鲁因·纽曼常数 > -2.7x10-9 + + + + + 卡塔兰常数 + + + + + 兰道-拉马努金常数 + + + + + Viswanath常数 + + + + + 勒让德常数 + + + + + 拉马努金·Soldner常数 + + + + + 埃尔德什-波温常数 + + + + + 阿培里常数 + + + + + 康威常数 + + + + + 45度余弦值 + + + + + 45度余弦值 + + + + + 45度余弦值 + + + + + 45度正弦值 + + + + + 45度正弦值 + + + + + 45度正弦值 + + + + + 根号2的一半,用于快速平方根除以二 + + + + + 根号2的一半,用于快速平方根除以二 + + + + + 根号2的一半,用于快速平方根除以二 + + + + + 最大可接受的误差 + + + + + 最大可接受的误差 + + + + + 最大可接受的误差 + + + + + 表示无效的三维整数矢量 + + + + + 表示无效的二维整数矢量 + + + + + 表示无效的整数 + + + + + 当unity处于编辑器模式下时 + + + + + 当unity处于发布游玩版本下时(模拟器不算发布版本) + + + + + 将物体层设置为摄像机层 + + + + + + + 从目标数二进制获取左移位数,默认目标偏移数为1 + + + + + + + 从目标数二进制获取左移位数,并获取目标偏移数 + + + + + + + 获取给定索引下的位是否为真 + + + + + + + + 设置给定索引的位 + + + + + + + 设置给定索引的位 + + + + + + + 设置给定索引位的枚举 + + + + + + + + + 设置给定枚举的枚举 + + + + + + + + + 重置给定索引位的枚举 + + + + + + + + + 重置给定枚举的枚举 + + + + + + + + + 获取翻转枚举 + + + + + + + 获取翻转给定索引的枚举 + + + + + + + + 获取翻转给定枚举的枚举 + + + + + + + + 枚举除给定项目外至少有一个有效 + + + + + + + + 枚举仅此有效 + + + + + + + + 枚举至少存在一个有效的枚举项目 + + 返回是否存在至少有一个有效的枚举项目 + + + + 枚举至少存在一个有效的枚举项目 + + 返回是否存在至少有一个有效的枚举项目 + + + + 枚举至少存在一个有效的枚举项目 + + + 当目标枚举不实现Flags时,需要进行完全匹配 + 返回是否存在至少有一个有效的枚举项目 + + + + 枚举1有效 + + + + + + 枚举2有效 + + + + + + 枚举3有效 + + + + + + 枚举4有效 + + + + + + 枚举5有效 + + + + + + 枚举6有效 + + + + + + 枚举7有效 + + + + + + 枚举8有效 + + + + + + 枚举小于0,或者说不存在有效的枚举项目 + + 返回是否不存在有效的枚举项目 + + + + 枚举小于0,或者说不存在有效的枚举项目 + + 返回是否不存在有效的枚举项目 + + + + Fisher-Yates洗牌算法,时间复杂度为O(n*n),空间复杂度为O(n); + + 返回一个索引列表,代表如何从原始列表通过这个索引数组映射为目标随机列表 + + + 待选项目的索引长度 + 输出项目的索引长度 + + + + + 重复的洗牌 + + 在Fisher-Yates洗牌算法的基础上进行了反复的洗牌。默认允许最多重复洗牌100次 + + + 待选项目的索引长度 + 输出项目的索引长度 + 重复计算的次数 + + + + + 蓄水池抽样算法,可以在线程安全的情况下完成洗牌。 + + + 需要抽取的样本 M + + + + + + 获取列表中随机顺序的对象 + + + + 需要采样的数量 + + + + + 对列表中的成员按组进行划分,并读取特定组中特定索引下的成员 + + + + + + + + + + 直接将一个对象填入枚举器 + + + + + + + + 获取索引下的迭代器对象 + + + + + 当索引超出或其他原因导致没能找到对象时返回默认 + + + + 获取索引下的迭代器对象(空降到索引) + + + + + 当索引超出或其他原因导致没能找到对象时返回默认 + + + + 将一个非泛型集合的简单迭代器通过指定函数转为给定类型的简单迭代器 + + + + + + + + + 使用链式语法进行foreach迭代 + + odin的库中也有一个ForEach,但如果关闭了Serializer模块的话,Sirenix.Utilities命名空间下的内容在编译时就不可用了。 + + + + + + + + + + 使用链式语法进行foreach迭代 + + odin的库中也有一个ForEach,但如果关闭了Serializer模块的话,Sirenix.Utilities命名空间下的内容在编译时就不可用了。 + + + + + + 内插语法,表示此foreachdo不会作为执行器运行,而是作为其中一步执行 + + + + + 在枚举器中定位到首个当equals结果为真的项目索引 + + + + + + + + + 在枚举器中定位到首个当equals结果为真的项目索引 + + + + + + + + + 在枚举器中定位到首个当equals结果为真的项目索引 + + + + + + + + + 在链式枚举器语法中的每个项目添加一个索引项目 + + + + + + + + 在链式枚举器语法中的每个项目添加一个索引项目,并允许阻塞计数 + + + + 阻塞计数,当项目为真时,将不会继续向上计数 + + + + + 限制枚举器项目在开始索引后的一段数量内 + + + + + + + + + + 添加一个成员在枚举器前 + + + + + + + + + 添加一个成员在枚举器前 + + + + + + + + + 添加一个成员在枚举器后 + + + + + + + + + 添加一个成员在枚举器后 + + + + + + + + + 将枚举器成员加入到一个字符串中 + + + 源序列 + 如何转换序列为字符串 + 开头文本 + 结尾文本 + 分隔符 + + + + + + 将枚举器成员合并为一个结果 + + + + + + + + + 检查两个集合中的元素是否相等 + + + + + + + + 检查两个集合中的元素是否相等 + + + + + + + + 列表的所有项目偏移,如果移动到范围外,则会用空值填充(空值可以自定义) + + 注意:偏移长度大于列表长度,会导致无法继续,以及方向未定义也会导致报错 + + + + + 偏移方向,大于0时列表从地位向高位进行偏移,反之亦然 + 偏移距离 + 空缺填充 + 返回链式语法的列表 + + + + + 循环偏移,超出范围的项目会循环回到另一侧,这比直接偏移的代价更高(大概一点点) + + 注意:偏移长度大于列表长度,会导致无法继续,以及方向未定义也会导致报错 + + + + + 偏移方向,大于0时列表从地位向高位进行偏移,反之亦然 + 偏移距离 + + + + + + + 循环偏移,超出范围的项目会循环回到另一侧 + + 这里提供了安全的操作,避免所有已知的错误 + + + + + 偏移方向,大于0时列表从地位向高位进行偏移,反之亦然 + 偏移距离 + + + + + 直接向此键值对列表填入对象 + + + + + + + + + + + 直接向此键值对列表填入一个空内容的对象 + + + + + + + + + 尝试添加一个键值对到此键值对列表中,但如果键值已经存在,则不做任何事 + + + + + + + 如果成功添加,返回真 + + + + 添加对象,并尽量保证它的唯一性,如果已存在这个键值成员就执行修改。 + + + + + + + + + + + 移除一个包含给定键值的成员 + + + + + + 移除成功时返回真 + + + + 移除一个包含给定值的成员 + + + + + + 移除成功时返回真 + + + + 修改指定键下的值成员 + + + + + + + 如果成功匹配并修改成功,返回真 + + + + 修改指定值下的键成员 + + + + + + + 如果成功匹配并修改成功,返回真 + + + + 修改指定索引下的键 + + + + + + + + + + + 修改指定索引下的值 + + + + + + + + + + + 修改指定键下的值成员 + + + + + + + 如果成功匹配并修改成功,返回真 + + + + 修改指定值下的键成员 + + + + + + + 如果成功匹配并修改成功,返回真 + + + + 修改指定索引下的值成员 + + + + + + + + + + 修改指定索引下的值 + + + + + + + + + + 给定键值是否存在于键值对列表中 + + + + + + + + + + 给定值是否存在于键值对列表中 + + + + + + + + + + 给定键值在键值对列表中的索引位置 + + + + + + + + + + 给定值在键值对列表中的索引位置 + + + + + + + + + + 获取给定键下值 + + + + + + + + + + + 获取给定值下的键值 + + + + + + + + + + + 获取键值对列表的键值枚举器 + + + + + + + + + 获取键值对列表的值枚举器 + + + + + + + + + 获取键值对列表的值枚举器 + + + + + + + + + 二分遍历法 + + + + 循环体,返回下一步遍历的方向,向较大部分索引返回1,向较小部分检索返回-1, 找到了返回0 + + + + + 在给定列表中寻找与目标最接近的项目(需要项目支持单精浮点数) + + 这个对象建议实现IComparer接口 + 一个已经排好序的列表对象 + 查找的目标 + 返回索引是否为准确的 + 如果需要找到最接近的对象,则必须指定如何获取判断依据 + 允许手动指定一个比较器,否则使用T类型默认的比较方式 + 在模糊判断时,选择更接近的一方,否则直接返回应当插入的位置 + + + + + + 找到在插入索引位置的项目最近的元素 + + + + + 插入位置索引 + + + + + 检查给定的索引大于零,小于此列表的数量 + + + + + + + + 检查给定的索引大于零,小于此数组的数量 + + + + + + + + 在列表的指定位置添加目标,如果中间为空,则会填充空 + + + + + + + + + 尝试给定索引处做些什么,如果索引或项目无效,则不执行(这是获取语句,空项目也不会执行) + + + + + + + + + 尝试给定索引处的项目执行修改,如果索引无效,则不执行(由于这是赋值语句,所以项目可能为空) + + + + + + + + + 使用目标列表中的元素替换当前位置的列表中的元素 + + 适用于两个不同封装结构,但索引对应的列表相互之间赋值的操作; + + + + 当前列表 + 目标列表 + 应当从SourceList中移除这个索引下的成员 + 应当将TargetList中索引下的成员覆盖到SourceList下 + 应当将TargetList中索引下的成员添加到SourceList的末尾 + + + + + 比较两个列表的顺序差异。 + 如果定义了替换方案,则会逐一比较成员,将origin中的内容向target改变。 + + + 源数组 + 目标数组 + 在索引处移除对象(从末尾开始移除) + 添加成员(从源数组末尾开始添加) + 替换成员(如果为空,则不会检查数组成员差异) + + + + 比较两个列表的顺序差异。 + 如果定义了替换方案,则会逐一比较成员,将origin中的内容向target改变。 + + + + 源数组 + 目标数组 + 在索引处移除对象(从末尾开始移除) + 添加成员(从源数组末尾开始添加) + 替换成员(如果为空,则不会检查数组成员差异) + + + + 尝试从列表中读取,如果项目为空,则先填充空,然后再获取 + + + + + + + + + 强制在给定索引处执行操作,但不必返回值; + 是的,如果给定索引下标处不存在,那么将返回一个空值,且此列表并不会设置这个值 + + + 列表 + 索引 + 你不能使用一个null来欺骗填充,这会导致这里什么都不执行 + + + + 强制在给定索引处执行赋值操作,如果索引不存在,那么径直填充空 + + + 列表 + 索引 + 你不能使用一个null来欺骗填充,这会导致这里什么都不执行,你可以使用另一个AddByIndex来执行这样的操作 + + + + 强制在给定索引处执行赋值操作,如果索引不存在,那么径直填充空 + + + 列表 + 索引 + 你不能使用一个null来欺骗填充,这会导致这里什么都不执行;而如果索引处不存在对象时,返回defualt + + + + 强制从列表中获取,如果这个值不存在,则返回一个不相关的默认值 + + + + + + + + + 获取材质渲染器对象列表的材质 + + + + + + + 获取材质渲染器对象列表的材质 + + + + + + + 迭代顺序的链表节点 + + + + + + + + 迭代逆序的链表节点 + + + + + + + + 交换链表上的两个节点 + + + + + + + + + + + 交换链表上的两个节点的值 + + + + + + + + + 设置列表组件的有效性 + + + + + + + 设置列表组件的有效性 + + + + + + + 设置列表组件的有效性 + + + + + + + 检查给定的Transform组件是否在GameObject集合中 + + + + + + + + 检查给定的RectTransform组件是否在GameObject集合中 + + + + + + + + 检查给定的GameObject组件是否在Transform集合中 + + + + + + + + 检查给定的RectTransform组件是否在Transform集合中 + + + + + + + + 检查给定的GameObject组件是否在RectTransform集合中 + + + + + + + + 检查给定的Transform组件是否在RectTransform集合中 + + + + + + + + 在对象列表中寻找一个组件 + + + + + 如果没有找到,返回null + + + + 在对象列表中寻找一个组件 + + + + + 如果没有找到,返回null + + + + 在对象列表中寻找一个组件 + + + + + 如果没有找到,返回null + + + + 获取一个被特定随机数填充的矩阵,这通常是无意义的 + + + + + + + + 获取一个在指定坐标范围内的随机矢量(矩形范围) + + + + + + + + 获取一个在指定坐标范围内的随机矢量(矩形范围) + + + + + + + + 获取一个在指定坐标范围内的随机矢量(矩形范围) + + + + + + + + 获取一个在指定坐标范围内的随机矢量(矩形范围) + + + + + + + + 获取一个在指定坐标范围内的随机矢量(矩形范围) + + + + + + + + 获取一个在指定范围内的随机矢量 [min, max] + + + + + + + + + 获取一个在指定范围内的随机矢量 [min, max] + + + + + + + + + 获取一个在指定范围内的随机矢量 [min, max] + + + + + + + + + 统一的单维随机数获取 + + + + + + + + + 统一的单维随机数获取 + + + + + + + + + 统一的单维随机数获取 + + + + + + + + 统一的单维随机数获取 + + + + + + + + 哈希后处理 + + + + + + + 大范围随机 + + + + + + + 获取字节数组的hash256 + + + + + + + 获取字节数组的hash384 + + + + + + + 获取字节数组的hash512 + + + + + + + 获取字节数组的hash1 + + + + + + + 将文本以 utf-32 格式转为字节数组 + + + + + + + 将文本以 utf-8 格式转为字节数组 + + + + + + + 将文本以 utf-7 格式转为字节数组 + + + + + + + 将文本以 Unicode 格式转为字节数组 + + + + + + + 将文本以 Base64 格式转为字节数组 + + + + + + + 将字节数组以 utf-32 格式转为文本 + + + + + + + 将字节数组以 utf-8 格式转为文本 + + + + + + + 将字节数组以 utf-7 格式转为文本 + + + + + + + 将字节数组以 Unicode 格式转为文本 + + + + + + + 将字节数组以 Base64 格式转为文本 + + + + + + + 将字节数组转为int32 + + + + + + + 钳制此项目 + + 目标值 + 最小值 + 最大值 + + + + + 钳制此项目 + + 目标值 + 最小值 + 最大值 + + + + + 钳制角度,仅适用于在360°以内的钳制操作,并且能避免在计算0度到-90之间的跳变时不流畅的问题 + + + + + + + + + 钳制此项目 + + 目标值 + 最小值 + 最大值 + + + + + 钳制此项目 + + 目标值 + 最小值 + 最大值 + + + + + 所有值的最小值 + + + + + + + 所有值的最小值 + + + + + + + 所有值的最小值 + + + + + + + 所有值的最大值 + + + + + + + 所有值的最大值 + + + + + + + 所有值的最大值 + + + + + + + 在正方向上进行锯齿循环,当越过零时,值会重新从最大开始。 + + 被取模数 + 模数,不可小于0 + + + + + 在正方向上进行锯齿循环,当越过零时,值会重新从最大开始。 + + 被取模数 + 模数,不可小于0 + + + + + 让一个值在最大与最小之间循环 + + + 最小值 + 最大值 + + + + + 让一个值在最大与最小之间循环 + + + 最小值 + 最大值 + + + + + 让一个值在最大与最小之间循环 + + + 最小值 + 最大值 + + + + + 四舍五入到一个任意的倍数 + + 比如4.8希望入到3.5的倍数,会得到3.5;6.2会舍入到7; + 可以用来执行比如网格吸附之类的操作 + + + 需要进行四舍五入的值 + 四舍五入的倍数 + 控制四舍五入时的小数位,但与输出的小数位无关 + + + + + 四舍五入到一个任意的倍数 + + 比如4.8希望入到3.5的倍数,会得到3.5;6.2会舍入到7; + 可以用来执行比如网格吸附之类的操作 + + + 需要进行四舍五入的值 + 四舍五入的倍数 + 控制四舍五入时的小数位,但与输出的小数位无关 + + + + + 四舍五入到一个任意的倍数 + + 比如4.8希望入到3.5的倍数,会得到3.5;6.2会舍入到7; + 可以用来执行比如网格吸附之类的操作 + + + 需要进行四舍五入的值 + 四舍五入的倍数 + 控制四舍五入时的小数位,但与输出的小数位无关 + + + + + 四舍五入到一个任意的倍数 + + 比如4.8希望入到3.5的倍数,会得到3.5;6.2会舍入到7; + 可以用来执行比如网格吸附之类的操作 + + + 需要进行四舍五入的值 + 四舍五入的倍数 + 控制四舍五入时的小数位,但与输出的小数位无关 + + + + + 获取两者的最小值,但不包括负数,如果其中一个成员为负则用0代替; + + + + + + + + 获取两者的最小值,但不包括负数,如果其中一个成员为负则用0代替; + + + + + + + + Interpolates t between a and b to a value between 0 and 1 using a Hermite polynomial. + + The first value + The second value + The position value + A smoothed value between 0 and 1 + + + + Interpolates t between a and b to a value between 0 and 1. + + The first value + The second value + The position value + Linear value between 0 and 1 + + + + 根据最小差值对数字进行四舍五入。 + + The value to round + The min difference + The rounded value. + + + + 舍弃最不重要的小数位。 + + The value of insignificant decimals + Value with significant decimals + + + + 在两个值之间钳制和包裹一个角度 + + + + + + + + + 获取最小差值前的小数个数 + + 比如0.1得到1,0.0821得到2 + + + + + + + + 余弦相似度 + + a?b + cos = ------- + |a|?|b| + 就是点积转换了一下,可以用于获取非单位向量之间的夹角 + + + + + 取值范围在 [-1, 1] + + + + 计算整数次幂 a^n,使用分治法 + + 底数 + 指数,必须是非负整数 + a^n 的结果 + 当n为负数时抛出 + + + + 计算整数次幂 a^n,使用迭代分治法(避免递归栈溢出) + + + + + 计算带符号整数次幂 a^n + + + + + 计算任意实数次幂 a^b + + 底数,必须大于0 + 指数,可以是任意实数 + a^b 的结果 + 当a≤0时抛出 + + + + 计算整数次幂 a^n,使用位运算优化 + + + + + 计算带符号整数次幂 a^n,使用位运算优化 + + + + + 计算平方根 √a + + + + + 计算立方根 ∛a + + + + + 使用泰勒级数计算自然对数 ln(x),x ∈ (0, 2] + + 输入值,必须大于0 + 计算精度,默认1e-10 + 自然对数值 + 当x≤0时抛出 + + + + 使用牛顿迭代法计算自然对数 ln(x) + + + + + 计算以a为底的对数 logₐ(x) + + + + + 矩形法类型枚举 + + + + + 左矩形 + + + + + 右矩形 + + + + + 中矩形 + + + + + 使用矩形法计算函数在区间[a,b]上的积分 + + 被积函数 f(x) + 积分下限 + 积分上限 + 分割区间数,越大越精确 + 矩形法类型:左矩形、右矩形、中矩形 + 积分近似值 + + + + 使用梯形法计算函数在区间[a,b]上的积分 + + + + + 使用辛普森法计算函数在区间[a,b]上的积分 + + + + + 使用自适应辛普森法计算积分,自动调整精度 + + + + + 斐波那契(迭代方式,可以用于cpu压力测试) + + + + + + + 快速平方根倒数 + + + 返回给定值的平方根倒数 + + + + 通过正则表达式检查一个数值是不是质数 + + + + + + + 使用公式 n(n+1)(2n+1)/6 计算前n个自然数的平方和(1^2 + 2^2 + 3^2 +...+ n^2). + 几何含义:可以看作是多个立方体面积的累加。 + + + + + 使用循环累加的方式计算前n个自然数的平方和 + + + + + 使用公式计算指定小数步长的平方和 (1.1^2 + 1.2^2 + 1.3^2 +...+n^2) + 公式: (n+1)a² + ahn(n+1) + (h²n(n+1)(2n+1))/6 + + 起始值 a + 步长 h + 项数 n (从 0 开始计数) + + + + 使用循环累加验证小数步长的平方和 + + + + + 获取圆上的点 + + 圆的中心点 + 开始绘制的起点弧度 + 圆半径 + 圆细分 + 获取顺序(顺时针) + + + + + 获取交于圆的线 + + + + + + + 返回这个线的起点和终点 + + + + 获取圆拱高度 + + + + + + 设置字 + + + + + 设置字 + + + + + 检查字 + + + + + 检查字 + + + + + 获取所有布尔值的和,表示有多少个布尔值是为真的 + + + + + + + 布尔运算 + + + + + + + + + + 布尔运算 + + + + + + + + + + 获取被从A到B的值填充的列表 + + + + + + + + 获取[a,b]范围的数组枚举器,每次按步骤长度枚举,如果步骤长度刚好 + + 枚举起点 + 枚举终点 + 步长 + 是否宽容输出极限情况下不满足步长的内容 + + + + + 获取[a,b]范围的数组枚举器,每次按步骤长度枚举,如果步骤长度刚好 + + 枚举起点 + 枚举终点 + 步长 + 是否宽容输出极限情况下不满足步长的内容 + + + + + 获取[a,b]范围的数组枚举器,每次按步骤长度枚举,如果步骤长度刚好 + + 枚举起点 + 枚举终点 + 步长 + 是否宽容输出极限情况下不满足步长的内容 + + + + + 获取[a,b]范围的数组枚举器,每次按步骤长度枚举,如果步骤长度刚好 + + 枚举起点 + 枚举终点 + 步长 + 是否宽容输出极限情况下不满足步长的内容 + + + + + 判断右值范围是否完全在左值范围内 + + + + + + + + 获取两个Rect范围相交部分的范围 + + + + 如果两个rect并不相交,那么返回为零的rect + + + + 判断rect是否为空 + + + 返回rect四维是否为空 + + + + 在两个变换之间进行过度,并创建这个过度的矩阵 + + + + + + + + + + + + + 检查四元数是否有效 + + + + + + + 获取永远有效的四元数 + + + + + + + 文本构建器对象池 + + + + + 向全局文本构建池添加文本(只支持单线程) + + + + + + 获取并释放全局文本构建池 + + + + + + 清空全局文本构建 + + + + + 将给定文本序列拼接为一整个文本 + + + + + + + 将一系列字符串中间以给定的字符串拼接在一起 + + + + + + + + 在枚举的文本之间插入一个逗号,除了开头之前和结尾之后 + + + + + + + 文本长度限制 + + + + + + 从中间截断 + + + + + + 检查这个字符串是无的还是为空 + + + + + + + 检查这个字符串是无还是仅为空格组成 + + + + + + + 检查两个字符串是否逐字符相等,并忽略两者中包含任何的空格 + + 逐字符迭代对比的方式显著低效 + + + + + + + + + 检查两个字符串是否逐字符序列相等,并忽略两者中包含任何的空格 + + + + + + + + + 检查两个字符串是否逐字符序列相等,并忽略两者中包含任何的空格 + + + + + + + + 检查两个字符串是否逐字符序列相等(忽略大小写),并忽略两者中包含任何的空格 + + + + + + + + 检查两个字符串是否相等,并忽略两者中包含任何的空格 + + + + + + + + + 检查两个字符串是否相等,并忽略两者中包含任何的空格 + + + + + + + + 检查两个字符串是否相等(忽略大小写),并忽略两者中包含任何的空格 + + + + + + + + 检查是英文字符 (不含标点符号) + + + + + + + 检查是否为英文全角字符 + + + + + + + 检查是否为Ascii码(或者说半角英文) + + + + + + + 检查是否为中文字符 (不含标点符号) + + + + + + + 检查是否为中文字符 + + + + + + + 获取一个大致的文本长度,全角是1,半角是0.5;这可能会与实际文本排版长度有出入。 + + + 返回的值需要乘以字号,才是总长度 + + + + 获取一个utf8编码的字节流的长度 + + + + + + + + 获取字符串的视觉长度 + + + 返回的值需要乘以字号,才是总长度 + + + + 获取此处的物体名称,如果带有(clone)后缀,则省略这个后缀 + + + + + 获取一个对象名称,但忽略括号后缀 + + + + + + + 文本包裹块处理器 + + 包裹器支持通过反射进行兼容性序列化,但这样会带来一些反射开销 + 通过 compatibility 开启反射兼容。 + + 部分格式的包裹器支持通过 SetParamters 设置值。 + + + + + + 启用兼容性反射检查 + + + + + 包裹器内如果包含变量,将允许SetParamters设置这个变量 + + + + + 参数化占用的名额 + + + + + 判断目标类型是否为事件委托 + + + + + + + + 格式化数值 + + + + + + + + 格式化颜色 + + + + + + + 尝试格式化对象为浮点数 + + + + + + + + 尝试格式化对象为枚举 + + + + + + + + + 开始文本拼接,返回文本构建器 + + + + + + 结束文本拼接,返回结果并清空构建内容 + + + + + + + 将当前包裹器内所有子包裹器序列化并拼接起来。 + + + + + + 获取当前节点下所有的包裹器 + + + + + + 获取当前节点的所有血统父级 + + + + + + 广度优先地获取对象 + + + + + + 检查自身是否被给定的所有类型包裹 + + + + + + + 检查自身是否被给定的所有类型包裹(默认认为给定的类型都是包裹器) + + + + + + + 直接设置参数,并将其设置到各个允许设置值的包裹器中 + + + + + + 设置参数 + + 参数起点索引 + 所有参数 + 返回使用了多少参数 + + + + 设置是否启用兼容性反射检查 + + + + + + + 设置是否启用变量化这个包裹器 + + + 手动设置占用变量 + + + + + 委托包裹器 + + + + + 反射包裹器(有子项) + + + + + 寻找成员 + + + + + + + + 设置值 + + + + + 获取值 + + + + + + 值包裹器(没有子项,计数) + + + + + 值名称(用于查找) + + + + + 值 + + + + + 其他参数 + + + + + 值包裹器(没有子项,计数) + + + + + 值名称(用于查找) + + + + + 值 + + + + + 最小值 + + + + + 最大值 + + + + + 格式化文本 + + + + + 启用无效值 + + + + + 值无效 + + + + + 无效时展示 + + + + + 值表达式包裹器(没有子项,不计数) + + + + + 工作模式 + + + + + 自定义状态 + + + + + 暂存 + + + + + 总和 + + + + + 总差 + + + + + 平均值 + + + + + 最大值 + + + + + 最小值 + + + + + 自定义 + + + + + 创建值表达式 + + + + + + + 对齐 + + + + + 对齐 + + + + + 颜色 + + + + + 粗体 + + + + + 斜体 + + + + + 间距 + + + + + 字体 + + + + + + + 字体资源是必要的 + 如若不需要材质资源,填null即可 + + + + + 行高 + + + + + 行缩进 + + + + + 链接 + + + + + 小写 + + + + + 大写 + + + + + 小型大写字母 + + + + + 边缘 + + + + + + + 设置为负来取消这类标签 + 设置为负来取消这类标签 + 设置为负来取消这类标签 + + + + + 马克(背景颜色,或者说前景?因为马克在文本之上) + + + + + 字符间距,设置为给定等宽距离 + + + + + 阻止解析标签 + + + + + 不间断空格,让单词保持在一起,而不是被自动换行分隔 + + + + + 分页符(必须将 text 对象设置为 page overflow 模式才能正常工作) + + + + + 水平位置 + + + + + 字体大小 + + + + + 水平间隔 + + + + + 精灵 + + + + + 删除线 + + + + + 下划线 + + + + + 链接 + + + + + 上标 + + + + + 下标 + + + + + 垂直间隔 + + + + + 文本宽度 + + + + + 富文本单位模式 + + + + + 将一个数值四舍五入后转为一个文本,并保留特定的小数点位,如果这个小数位为0则省略不写 + + + 目标小数位 + + + + + 将一个数值四舍五入后转为一个文本,并保留特定的小数点位,如果这个小数位为0则省略不写 + + + 目标小数位 + + + + + 将一个数值转为美式英文环境的表示(带有千位分隔符) + + + + + + + 将一个数值转为美式英文环境的表示(带有千位分隔符) + + + + + + + + 获取一个文本进度条 + + 当前值 + 最大值 + 文本块计数 + 占位样式 + 空位样式 + + + + + 获取到此的调用栈信息 + + 隐藏末端的调用栈层数 + + + + + 获取哈希名称(sha1) + + 需要提供一串文本作为种子 + + + + + 获取哈希名称(sha256) + + 需要提供一串文本作为种子 + + + + + 获取哈希名称(sha384) + + 需要提供一串文本作为种子 + + + + + 获取哈希名称(sha512) + + 需要提供一串文本作为种子 + + + + + 将一个格式化文本按特定的分隔符切割成格式化模板。 + + 格式化模板要求格式化内容中使用$或其他自定义的分割符,两个一组表示在这里使用数值替换。 + 其中两个分割符中的文本将会通过格式化函数填入ToString()函数中。 + 比如"前缀$F2$后缀" + + + + + + + + + 配合特定的格式化模板可以完成对特定元素的格式化功能 + + + + + 如果类型支持填入格式化内容,则应该通过方法将其引入方法 + + + + + 将一串组件可枚举列表的名称进行打印 + + + 格式 + + + + + 打印一维数组 + + + + + + + + 将一个二维数组的元素进行打印 + + + + + + + + 将一个数值转为中文格式; + + 比如 510会读成五百一十,9009会读成九千零九, + 最大支持到九千亿,不过已经可以满足int类型了,所以不需要再添加了。 + + + + + + + + 将一个数值转为中文格式 + + 数值字库 + 位数字库 + + + + + + 将一个数值转为中文格式 + + + + + + + 将一个数值转为中文繁体格式 + + + + + + + 罗伯特·沃格纳/迈克尔·费舍尔 基于编辑距离算法的拼写检查器(wagner Fischer) + + + + 返回两个单词之间的最小编辑距离,越小说明两个单词越相近 + + + + 罗伯特·沃格纳/迈克尔·费舍尔 基于编辑距离算法的拼写检查器(wagner Fischer) + + 注意:这是一个预设的过滤器操作,你无法完全从外部控制过程进度 + 在进行检查之前,建议可以先判断单词在不在字典中,避免立刻进行大量的计算操作 + + + 一系列单词表 + + 距离阈值,仅输出小于等于这个阈值的单词,0 表示完全相等 + + + + + 罗伯特·沃格纳/迈克尔·费舍尔 基于编辑距离算法的拼写检查器(wagner Fischer) + + + 源单词列表,或是从中获取单词的对象集合 + 查找单词 + 如何从迭代器中获取名称 + 当前返回的最优单词的编辑距离 + 返回最短编辑距离单词的索引 + 最优的文本 + + + + 罗伯特·沃格纳/迈克尔·费舍尔 基于编辑距离算法的拼写检查器(wagner Fischer) + + 只要有一个任意一个单词匹配,就会立刻返回这个单词 + + + + 源单词列表,或是从中获取单词的对象集合 + 查找单词列表 + 如何从迭代器中获取名称 + 当前返回的最优单词的编辑距离 + 返回最短编辑距离单词的索引(是源单词列表的索引) + + + + + 罗伯特·沃格纳/迈克尔·费舍尔 基于编辑距离算法的拼写检查器(wagner Fischer) + + 源单词列表 + 查找单词 + 当前返回的最优单词的编辑距离 + 当前最优的单词 + + + + 罗伯特·沃格纳/迈克尔·费舍尔 基于编辑距离算法的拼写检查器(wagner Fischer) + + 源对象列表 + 查找单词 + 当前返回的最优单词的编辑距离 + 当前最优的单词 + + + + 罗伯特·沃格纳/迈克尔·费舍尔 基于编辑距离算法的拼写检查器(wagner Fischer) + + 源对象列表 + 查找单词 + 当前返回的最优单词的编辑距离 + 当前最优的单词 + + + + 罗伯特·沃格纳/迈克尔·费舍尔 基于编辑距离算法的拼写检查器(wagner Fischer) + + 源属性列表 + 查找单词 + 当前返回的最优单词的编辑距离 + 当前最优的单词 + + + + 罗伯特·沃格纳/迈克尔·费舍尔 基于编辑距离算法的拼写检查器(wagner Fischer) + + 源对象列表 + 查找单词 + 当前返回的最优单词的编辑距离 + 当前最优的单词 + + + + 罗伯特·沃格纳/迈克尔·费舍尔 基于编辑距离算法的拼写检查器(wagner Fischer) + + 源对象列表 + 查找单词 + 当前返回的最优单词的编辑距离 + 当前最优的单词 + + + + 罗伯特·沃格纳/迈克尔·费舍尔 基于编辑距离算法的拼写检查器(wagner Fischer) + + 源对象列表 + 查找单词 + 当前返回的最优单词的编辑距离 + 当前最优的单词 + + + + 罗伯特·沃格纳/迈克尔·费舍尔 基于编辑距离算法的拼写检查器(wagner Fischer) + + 源属性列表 + 查找单词 + 当前返回的最优单词的编辑距离 + 当前最优的单词 + + + + 罗伯特·沃格纳/迈克尔·费舍尔 基于编辑距离算法的拼写检查器(wagner Fischer) + + 源对象列表 + 查找单词 + 当前返回的最优单词的编辑距离 + 当前最优的单词 + + + + 一年有多少天 + + + + + 将累计的秒转为tick + + + + + + + 将累计的秒转为tick + + + + + + + 将累计的秒转为tick + + + + + + + 将累计的秒转为tick + + + + + + + 将累计的毫秒转为tick + + + + + + + 将累计的毫秒转为tick + + + + + + + 将累计的毫秒转为tick + + + + + + + 将累计的毫秒转为tick + + + + + + + 将累计的分钟转为tick + + + + + + + 将累计的分钟转为tick + + + + + + + 将累计的分钟转为tick + + + + + + + 将累计的分钟转为tick + + + + + + + 将累计的小时转为tick + + + + + + + 将累计的小时转为tick + + + + + + + 将累计的小时转为tick + + + + + + + 将累计的小时转为tick + + + + + + + 将累计的天转为tick + + + + + + + 将累计的天转为tick + + + + + + + 将累计的天转为tick + + + + + + + 将累计的天转为tick + + + + + + + 将累计的年转为tick + + + + + + + 将累计的年转为tick + + + + + + + 将累计的年转为tick + + + + + + + 将累计的年转为tick + + + + + + + 将累计的tick转为时间 + + + + + + + 将累计的秒转为时间 + + + + + + + 将累计的tick转为累计的秒 + + + + + + + 将累计的tick转为剩余的秒 + + + + + + + 将累计的tick转为累计分钟 + + + + + + + 将累计的tick转为剩余分钟 + + + 累计分钟 + + + + 将累计的tick转为累计小时 + + + + + + + 将累计的tick转为剩余小时 + + + + + + + 将累计的tick转为累计天 + + + + + + + 表示一年的刻度数,此字段为常量 + + + + + 将累计的tick转为剩余天 + + + + + + + 将累计的tick转为累计年 + + + + + + + 将累计的秒转为dateTime格式 + + + + + + + 仿照datetime的时间格式进行文本格式化 + + 注意,这会替换其中看起来像是时间描述的占位符,不论它在上下文的位置如何 + + 另外,这是一种便捷但缓慢的方法,请不要处理过长的文本 + + + 时间 + 文本格式,使用至少两个连续时间字符代表特定的时间,这会限制例如O,u,G的使用 + + + + + 自定义的时间格式 + + 注意,请使用年YY, 月MM, 日dd, 天dd,小时hh,分钟mm,秒ss代替时间, + 2个连续字符视为累计时间,3个连续字符视为剩余时间,大于3个连续字符视为带有小数部分的剩余时间(小数位数随超出的个数增加,不需要小数点) + + 另外,这是一种便捷但缓慢的方法,请不要处理过长的文本 + + 说明: + 累计时间是指时间在当前单位下所有下级单位时间累计和(比如1.5天累计为36小时) + 剩余时间是指在下一级单位时间内剩余的单位时间(比如1.5天可以剩余为12小时,如果除不尽,可以通过更多的位数来表示小数点位数)。 + 另外年月无法计算累计和剩余,将会使用普通的datetime格式化代替 + + + + + + + + + 时间间隔的格式化方法 + + 支持y,d,h,m,s,ms,us(年,天,小时,分钟,秒,毫秒,微秒) + 在时间格式后加小数点可以转为totaltime,小数点后跟数字或时间格式,表示小数精度(如:“d.dd” = 3.33天, “m.0” = 3分钟, “s.3” = 3.333秒) + 在时间格式中使用小于号代表取自最近的高级时间单位的余数部分(如:“h<” = 259,170秒可得23.99167小时,格式支持小数精度控制)。 + + 注意: + 不支持多个时间分割符号,如“y.d.h”这样的格式。 + 不支持多元时间分割符号,如“y.ddd”这样的格式。 + 上述的后缀无效时,会直接按照后缀的长度来截取小数部分。 + 如果输入了其他不支持的时间分割符号或格式,会直接抛出异常。 + 年得计算没有考虑闰年,所以可能存在误差 + + + + + + + + + + + 获取星期枚举为中文全拼 + + + + + + + 获取星期枚举为中文简拼 + + + + + + + 获取星期枚举为英文全拼 + + + + + + + 获取星期枚举为英文简拼 + + + + + + + 获取星期枚举为日文简拼 + + + + + + + 获取星期枚举为日文简拼 + + + + + + + 获取星期的名称 + + 0/1 : 中文全/简拼 + 2/3 : 英文全/简拼 + 4/5 : 日文全/简拼 + + + 星期 + 模式 + + + + + 将日期文本通过给定的格式还原为日期 + + + + + + + + 将时间间隔文本通过格式还原为时间 + + + + + + + + 提供相机的计算宏,比如计算视锥角等。 + + + + + 获取当前屏幕尺寸 + + + + + 获取屏幕像素的横纵比 + + + + + 获取相机当前的渲染尺寸 + + + + + + + 获取摄像机上,垂直于视线的矩形区域 + + + + + + 获取摄像机上,垂直于视线的矩形区域 + + + + + + 获取一个矩形尺寸在摄像机视锥中的距离 + + 比如可以将一个物体的世界bounds的尺寸截取后乘以一个比例传入, + 计算得到摄像机最佳的观察距离。 + + + + 摄像机渲染尺寸(像素尺寸) + 矩形尺寸(unity单位m) + + + + + 世界转屏幕空间坐标点 + + 世界坐标 + 摄像机 + ui摄像机 + + + + + 曲线宏 + + + + + 一阶贝塞尔曲线 + + + + + t的位置 + + + + 一阶贝塞尔曲线 + + + + + t的位置 + + + + 一阶贝塞尔曲线 + + + + + t的位置 + + + + 一阶贝塞尔曲线 + + + + + t的位置 + + + + 二阶贝塞尔曲线 + + + + + + t的位置 + + + + 二阶贝塞尔曲线 + + + + + + t的位置 + + + + 二阶贝塞尔曲线 + + + + + + t的位置 + + + + 二阶贝塞尔曲线 + + + + + + t的位置 + + + + 三阶贝塞尔曲线 + + + + + + + t的位置 + + + + 三阶贝塞尔曲线 + + + + + + + t的位置 + + + + 三阶贝塞尔曲线 + + + + + + + t的位置 + + + + 三阶贝塞尔曲线 + + + + + + + t的位置 + t的切向 + + + + 获取任意阶数的贝塞尔曲线 + + 控制点数量,数量越多,阶数越大 + + + + + + + 计算二次项系数 \binom{n}{k} + + + + + + + + 卡特莫尔罗曲线 + + + + + + + t的位置 + + + + 卡特莫尔罗曲线 + + + + + + + t的位置 + t的切向 + + + + 卡特莫尔罗曲线 + + + + + + + t的位置 + t的切向 + t的法向 + t的次法向 + + + + 提供预制的按键逻辑检查的类 + + 提供按键状态识别,界面坐标计算。 + + + + + + + 设定与按键记录表字典 + + + + + 按键与设定映射 + + + + + 获取登记的按键状态表 + + + + + + + 将一个按键映射为一个设定 + + + + + + + 关键操作翻转记录表 + + + + + 当按键按下时 + + + + + 当按键释放时 + + + + + 当按键长按后释放时 + + + + + 当按键首次长按时 + + + + + 当按键长按时 + + + + + 当按键双击时 + + + + + 按键从长按转为拖拽(需要执行的方法支持拖拽识别,否则无法触发) + + + + + + + 当按键丢弃时(需要执行的方法支持拖拽识别,否则无法触发) + + + + + 当按键按下时 + + + + + 当按键释放时 + + + + + 当按键长按后释放时 + + + + + 当按键长按时(持续触发) + + + + + 当按键首次长按时 + + + + + 当按键双击时 + + + + + 按键从长按转为拖拽(需要执行的方法支持拖拽识别,否则无法触发) + + + + + 当按键开始长按时(需要执行的方法支持拖拽识别,否则无法触发) + + + + + 当按键拖拽时(需要执行的方法支持拖拽识别,否则无法触发) + + + + + 当按键丢弃时(需要执行的方法支持拖拽识别,否则无法触发) + + + + + 上帧坐标 + + + + + 这帧坐标 + + + + + 坐标偏移量 + + + + + 按键状态 + + + + + 按键坐标 + + + + + 上一帧按键坐标 + + + + + 上上一帧按键坐标 + + + + + 按键移动偏移量 + + + + + 按键变化的记录 + + + + + 按键设定 + + + + + 设置关联的按键设定 + + + + + + 获取关联的按键设定 + + + + + + 清除所有的本地布尔按键状态 + + + + + 当前按键状态保持小于时间 + + + + + + 当前按键状态保持大于时间 + + + + + + + 坐标点超出范围 + + + + + + + + 添加按键状态(交叉动作与延迟触发长按) + + 需要根据按键状态每帧输入, + 这会立刻触发相应的按键状态。 + + + + + + + 添加按键状态(坐标保持触发) + + 按键状态 + 输入坐标 + 输入坐标是偏移量 + 移动触发阈值 + + + + 清空按键状态 + + + + + 获取上一次相同的按键状态(也就是上上一个状态) + + + 如果序列数量不足时,将返回为否 + + + + 关键操作记录 + + + + + 时间标记 + + + + + 当前时间标记下的状态 + + + + + 此时间戳到现在的时间距离 + + + + + + 操作时间类型 + + + + + 时间戳 + + + + + 按键设定 + + + + + 消息名称前缀(自动填充) + + + + + 开启消息提示 + + + + + 识别为双击的时间 + + + + + 识别为长按的时间 + + + + + 最小的按键时间 + + + + + 添加按键状态(交叉动作与延迟触发长按) + + cmet的含义是根据当前执行触发进行交叉触发,并带有一个根据时间长按的状态判断。 + + + 按键状态 + 按键设定,每个按键状态需要单独设立按键设定 + + + + + 添加按键状态(坐标保持触发) + + pt的含义是根据当前的一个坐标进行触发 + + + + + + + + + + + 添加按键状态(交叉动作与延迟触发长按) + + 按键状态 + 按键设定,每个按键状态需要单独设立按键设定 + + + + + 添加按键状态(坐标保持触发) + + + 按键设定,每个按键状态需要单独设立按键设定 + + + + + + + 添加按键状态(坐标保持触发) + + + 按键设定,每个按键状态需要单独设立按键设定 + + + + + + + 获取给定光标位置在ui组件上相对位置(相对锚点Anchors的坐标) + + 组件空间 + 给定光标位置 + 返回光标在组件矩形范围内的 + 如果转换失败,返回否 + + + + 获取给定光标位置在ui组件上相对位置(相对锚点Anchors的坐标) + + 组件空间 + 给定光标位置 + 摄像机位置,用于处理透视变形 + 返回光标在组件矩形范围内的 + 如果转换失败,返回否 + + + + 获取给定光标位置在ui组件上零点相对位置(相对当前rect左下角) + + + + + + + + + 获取给定光标位置在ui组件上单位空间位置(相对锚点Anchors的坐标) + + + + + + + + + PID控制器 + + + + + 比例系数 + + + + + 积分系数 + + + + + 微分系数 + + + + + 上一次的误差 + + + + + 用于速度式微分 + + + + + 上一次的导数 + + + + + 误差积分 + + + + + 默认积分限幅 + + + + + 限制结果最小 + + + + + 限制结果最大 + + + + + 当前值 + + + + + 启用调试输出 + + + + + 创建一个PID控制器 + + 比例系数 + 积分系数 + 微分系数 + + + + 计算PID控制器的输出 + + 根据当前的pid计算从当前实际值到目标值的偏差 + 这个偏差将用于对实际值的修改,并最终反馈到此处的实际值传入上。 + + + 目标值 + 实际值 + 时间间隔 + 保持结果在有效值 + + + + + 通过自己的记录指计算pid + + + + + + + + 设置PID参数 + + 比例系数 + 积分系数 + 微分系数 + + + + 重置PID控制器 + + + + + 程序宏 + + + + + 进程集合 + + + + + 默认超时时间 + + + + + 设置程序默认超时时间 + + 毫秒为单位,设定为负数来指定无限期运行 + + + + 异步执行一个外部控制台程序 + + 程序路径位置 + 正常输出时 + 错误输出时 + 退出时 + 释放时 + 自定义程序参数,可以为null(除了捕获标准以及程序命令无法设置之外,其他都可以自由设定) + + + + + 异步执行一个外部控制台程序 + + 程序路径位置 + 正常输出时 + 错误输出时 + 退出时 + 释放时 + 自定义程序参数,可以为null(除了捕获标准以及程序命令无法设置之外,其他都可以自由设定) + 程序超时时间 + 程序传入的参数 + + + + + + 杀死给定的进程 + + + + + + 给定的进程是否在运行 + + + + + + + ui变换组件宏 + + + + + 获取rectTransform + + + + + + 获取rectTransform + + + + + + 获取组件的宽度 + + + + + + + 设置组件的宽度 + + + + + + + 获取组件的高度 + + + + + + + 设置组件的高度 + + + + + + + 设置组件的宽度和高度 + + + + + + + + 获取矩形宽度 + + + + + + + 获取矩形高度 + + + + + + + 设置组件的锚点为一个点 + + + + + + + 获取绝对尺寸 + + + + + + 变换顶点 + + + + + + + 计算坐标相对原点移动的偏移量角度 + + |`-_ 想象这是一个直角圆弧 + o |___\ 然后它的直角为圆心 + 给定的坐标相对这个圆心为轴x末端,偏移量移动后的坐标为轴y末端 + 如果偏移量沿顺时针,则返回的值为负,否则为正,这于unity旋转方向是一致的。 + + 原理: + 使用叉乘计算得到拖拽方向的副法向,再计算这个副法向与坐标到原点的点积角度。 + + 应用场景: + 用于屏幕上计算轮盘拖拽角度。 + + + + + + + + + + 在这个组件上截图 + + + + + + + + + + 在这个组件上截图 + + + + + + + + + + 超驰宏(其实就是反射) + + + + + 用于翻译程序集简写 + + + + + 获取目标所属程序集物理位置 + + + + + + + 尝试查找程序集简写对应,如果没找到就直接使用传入的 + + + + + + + + 尝试通过名称获取类 + + 完全限定名(包含程序集信息,如 "MyNamespace.MyClass, MyAssembly") + 找不到类型时抛出异常(如 TypeLoadException)。 + 类型名称匹配时忽略大小写。 + + + + + 获取对象上所有被特定特性标记的成员和反射属性 + + + + 返回成员反射属性,以及这个特性 + + + + 获取对象上所有被特定特性标记的成员和反射属性 + + + + 返回成员反射属性,以及这个特性 + + + + 获取对象上所有被特定特性标记的成员和反射属性 + + + + 返回成员反射属性,以及这个特性 + + + + 获取对象上所有被特定特性标记的成员和反射属性 + + + + 返回成员反射属性,以及这个特性 + + + + 获取对象上所有被特定特性标记的成员和值 + + + + 返回成员值,以及这个特性 + + + + 获取对象上所有被特定特性标记的成员和值 + + + + 返回成员值,以及这个特性 + + + + 检查当前类下是否包含至少一个名称的方法 + + + + + + + + 检查当前类下是否包含至少一个名称的方法 + + + + + + + + 超驰方法安全调用,如果参数不匹配,将返回否 + + 返回类 + 超驰目标类 + 超驰方法名称 + 超驰方法返回值 + 如果是实例方法,提供承载对象 + 提供方法参数 + + + + + 检查给定的参数是否能够开启调用方法 + + 主要检查的是传入参数的类型是否匹配,如果不匹配,将返回否,反之为真 + + + 返回值类型检查,如果没有返回值则用void + 超驰目标类 + 超驰方法名称 + 提供方法参数 + + + + + 方法类型检查 + + + 输入所有形参的类型,最后一个类型是返回值类型,如果没有则为null。 + + + + + 方法类型检查 + + + 输入所有形参的类型,最后一个类型是返回值类型,如果没有则为void。 + + + + + 超驰方法调用 + + 超驰方法名称 + 如果是实例方法,提供承载对象 + + + + + 超驰方法调用 + + 超驰方法名称 + 如果是实例方法,提供承载对象 + 提供方法参数 + + + + + 超驰方法调用 + + 超驰目标类 + 返回类 + 超驰方法名称 + 如果是实例方法,提供承载对象 + 提供方法参数 + + + + + 超驰方法调用 + + 返回类 + 超驰目标程序集全称 + 超驰方法名称 + 如果是实例方法,提供承载对象 + 提供方法参数 + + + + + 超驰方法调用 + + 超驰目标类 + 超驰方法名称 + 如果是实例方法,提供承载对象 + 提供方法参数 + 忽略返回,或无返回值 + + + + 超驰方法调用 + + 超驰目标程序集全称 + 超驰方法名称 + 如果是实例方法,提供承载对象 + 提供方法参数 + 忽略返回,或无返回值 + + + + 超驰方法调用 + + 返回类 + 超驰目标类 + 超驰方法名称 + 如果是实例方法,提供承载对象 + 提供方法参数 + + + + + + 获取软接口反射目标,并执行相应的步骤 + + + + + + 失败返回否,比如字段和属性中都没有找到 + + + + 使用软接口名称(对象以及类上成员名称)获取字段属性的值; + + + + + 失败返回否,比如字段和属性中都没有找到 + + + + 使用软接口名称(对象以及类上成员名称)设置字段属性的值; + + + + + 失败返回否,比如字段和属性中都没有找到 + + + + 使用软接口名称(对象以及类上成员名称)获取字段属性的值 + + + + + + + + + + 使用一系列软接口名称(对象以及类上成员名称)获取多个字段属性的值 + + + + + 如果给定名称找不到字段,则返回default + + + + 使用一系列候选软接口名称设置一系列对象上的字段属性值 + + + + + + + + 在一系列对象上使用相同软接口名称获取字段属性值 + + + + + + + + 在一系列对象上使用相同软接口名称设置字段属性值 + + + + + + + + 超驰实例化 + + 这看起来好像没什么道理 + + + 超驰实例类 + 实例返回类 + + + + + + 超驰实例化 + + 超驰目标程序集全称 + + + + + + 超驰实例化 + + + + + + + 更智能地创建实例 + + + + + + + + 更智能地创建实例 + + + + + + + + 将一个类型转为另一个类型,用于泛型类型转换。 + 注意,这个方法的开销可能比较大。 + + 将要转换的类型 + 转换的类型 + 对象 + 返回 + + + + + 在枚举值上获取一个特性(可以用于在枚举上使用rename特性标记的用法) + + + + + + + + + + + 在给定类中找到一个给定名称的方法,并转为委托 + + + + + + + + + 在给定类中找到一个给定名称的方法,并转为委托 + + + + + + + + + 在给定类中找到一个给定名称的方法,并转为委托 + + + + + + + + + 获取所有属性的重命名 + + + + + + + + + 在重命名中查找对象 + + + + + + + + + + 在重命名中查找对象 + + + + + + + + + + 在重命名中查找对象 + + + + + + + + + + 获取一个对象上所有属性的匿名键值对快照 + + + + + + + 获取一个类上所有属性的名称 + + + + + + + 获取一个对象上所有字段的匿名键值对快照 + + + + + + + 获取一个类上所有字段的名称 + + + + + + + 获取一个对象上所有方法的匿名键值对快照 + + + + + + + 获取一个类上所有方法的名称 + + + + + + + 获取一个对象上所有事件的匿名键值对快照 + + + + + + + 获取一个类上所有事件的名称 + + + + + + + 将匿名键值对快照填入对象 + + + + + + 将匿名键值对快照填入对象 + + + + + + 所有基础可见的成员 + + + + + 所有基础可见的单例成员 + + + + + 所有基础可见的实例成员 + + + + + 检索几乎所有访问修饰权限下,给定方法名内任意形参的方法 + + + + + + + + 检索给定访问修饰权限下,给定方法名内任意形参的方法 + + + + + + + + 检索无参方法 + + + + + + + + + 检索无参静态方法 + + + + + + + + + 检索无参实例方法 + + + + + + + + + 检查方法是否为空,否则报错 + + + + + + + 将目标成员以结构拆分显示 + + + + + 向给定的对象中传递默认值(GetDefaultButNotNullTarget) + + + + + + + + + 获取默认值 + + + + + + + + 通过表达式树获取默认值(注意表达式树可能在部分AOT程序中不受支持) + + + + + + + + 是空类型 + + + + + + + 不是空类型 + + + + + + + 方法是空返回 + + + + + + + 方法是空返回 + + + + + + + 检查类型具体信息 + + 检查条件的目标 + 要检查的条件 + 所有条件如何计算加和 + + + + + 检查一个反射执行条件 + + + + + + + + + 获取在当前运行的程序集中所有继承自给定的类型 + + + + + + + 获取当前运行程序集中所有继承自给定的类型 + + + + + + + 获取在给定程序集中的所有继承自给定的类型 + + + + + + + + 预制函数退化链节点 + + 继承并添加需要的委托,在使用时会遍历表项进行选择。 + 在子类中使用与目标方法对应的函数签名,以及如何检查其中参数 + + + + + + 上一个节点 + + + + + 下一个节点 + + + + + 形参列表 + + + + + 进入有效形参标记阈值 + + + + + 形参数量 + + + + + 有效形参标记预制 + + + + + 初始化 + + 这个列表中最大的参数数量 + 进入后续判断的最低有效参数阈限 + + + + 添加节点 + + 节点 + + + + + + + 添加节点 + + 添加的节点 + 插入时的模式,是其他节点到此的状态,如果当前状态与之前的状态不一致,说明需要插入 + + + + 将节点从链路中移除 + + + + + 检查参数是否满足要求 + + + + + + + + 必须验证给定的参数,随后执行其中的成员,如果成功,需要返回真。 + + + + + + + 检查链表中匹配的节点,并执行 + + + + + + + + 获取链表为列表 + + + + + + 获取整个链表为列表 + + + + + + 枚举其中的函数 + + + + + + 正则库 + + + + + 一组以特定顺序格式排列的时间,每隔时间数值之前需要有空格冒号横杠(任意不是数字的一个或多个符号分割) + + + + + 格式化时间 + + + + + + + + 给定匹配组,处理里面的数值格式 + + + + + + + 以逗号,空格,或它们的任意组合分割的多个连续的数值 + + + + + 以逗号,空格,或它们的任意组合分割的多个连续的数值 + + + + + 以逗号,空格,或它们的任意组合分割的多个连续的数值 + + + + + 以逗号,空格,或它们的任意组合分割的多个连续的数值 + + + + + 格式化4维矢量 + + + + + + + + 格式化4维矢量 + + + + + + + + 格式化3维矢量 + + + + + + + + 格式化3维矢量 + + + + + + + + 格式化2维矢量 + + + + + + + + 格式化2维矢量 + + + + + + + + 格式化数值 + + + + + + + + 格式化数值 + + + + + + + + 给定匹配组,处理里面的数值格式 + + + + + + + 匹配颜色 + + + + + 匹配颜色 + + + + + 匹配空颜色 + + + + + 匹配颜色命令 + + + + + 格式化颜色 + + + + + + + + obj文件中注释 + + + + + obj文件中子模型名称 + + + + + obj文件中顶点参数 + + + + + obj文件中线参数 + + + + + obj文件中面法向 + + + + + obj文件中面法向(0关闭平滑组,1开启平滑组) + + + + + obj文件中面组(访问1获取整个组,然后再次匹配里面的子项) + + + + + 上诉匹配组1里的内容 + + + + + obj转到unity世界 + + + + + 格式化3维矢量 + + + + + + + + 格式化3维矢量 + + + + + + + + 格式化3维矢量 + + + + + + + + 格式化obj面 + + + v:顶点索引(Vertex Index)。vt:纹理坐标索引(Texture Coordinate Index,可选)。vn:法线索引(Normal Index,可选)。 + + + + + 获取逐个模型对象 + + + + + + + 获取逐个模型对象包含的顶点 + + + + + + + sql数据库合法名称 + + + + + 名称是合法的sql数据库名称 + + + + + + + 以特定条件检查一个数是否为质数 + + + + + 检查实例名称 + + + + + 匹配富文本块 + + + + + + + + + + 匹配富文本块 + + + + + + + + + + 匹配所有id块 + + + + + + + 匹配id块 + + + + + + + + + 匹配id块 + + + + + + + + + 输入正则处理input内容,并用replace替换 + + + + + + + + + + 输入正则处理所有input内容,并用replace替换应用所有 + + + + + + + + + 正则替换格式 + + + + + 将一个已经匹配的正则传入,然后通过正则替换格式处理文本替换 + + + + + + + + 尝试通过给定的正则进行匹配 + + + + + + + + + 创建这个shader的材质实例,但如果shader为空,则返回否并什么都不做 + + + + + + + + 查找shader,并创建它的材质实例 + + + + + + + + + 排序算法库 + + + + + 选择排序,复杂度 O((n(n-2))/2) + 操作方式是从无序区选择数据插入到有序区的后面。(比较多,交换少,链表稳定) + + + + + 返回从小到大的枚举器 + + + + 快速排序,复杂度 O(n log2n) + 0 -> 最大值 n -> 最小值 + + + + + + + + + 定义两个对象进行比较 + + + + + + 将一个枚举器列表中的成员仅以首字母的顺序进行快速排序(这里的顺序是指ascii码的顺序,快速排序指算法使用快速排序) + + + + 定义如何获取枚举成员的名称,必须返回一个非空非null的字符串 + + + + + 将一个枚举器列表中的所有成员以字符顺序进行快速排序(这里的顺序是指ascii码的顺序,快速排序指算法使用快速排序) + + + + + + + + + 根据 AaBaCc……01234…… !"#$%…… 的顺序获取字符的索引(英文到数字的索引是按顺序来的,其余的直接加126)。 + + + + + + 单位转换基础 + + + + + 值 + + + + + 单位 + + + + + 符号 + + + + + 在协程上等待一个异步的完成 + + + + + + + 在协程上等待一个异步的完成 + + + + + + + 在协程上等待一个异步的完成 + + + + + + + 在协程上等待一个异步的完成 + + + + + + + Merged debug messages + + + 合并调试消息, + 如果需要输出连续的一串消息,但又因为太长或太细碎导致调试信息破碎, + 就适合使用合并消息。 + + + + + 单次发送消息的限制长度 + + + + + 消息内容 + + + + + Push the message content + + + 压入消息内容 + + + + + Push the message content, with a line feed + + + 压入消息内容,并在末尾追加一个换行符 + + + + + Send information in a message type + + + 以消息类型发送信息 + + + + + Send information in a Warning type + + + 以警告类型发送信息 + + + + + Send information in a Error type + + + 以错误消息类型发送信息 + + + + + 颜色宏 + + + + + 在HSV色环上随机挑一个颜色,饱和度和亮度都为1 + + + + + + + 将颜色文本转换为Unity Color对象 + + 颜色文本(可以是颜色名称或十六进制代码) + 转换后的Color对象 + 是否成功转换 + + + + 将十六进制颜色代码转换为Unity Color对象 + + 十六进制颜色代码(如 #FF0000 或 #FF0000FF) + 转换后的Color对象 + 是否成功转换 + + + + 将颜色文本转换为Unity Color对象,如果失败则返回默认颜色 + + 颜色文本 + 转换失败时返回的默认颜色 + 转换后的Color对象 + + + + 将颜色文本转换为Unity Color对象,如果失败则返回白色 + + 颜色文本 + 转换后的Color对象 + + + + 枚举宏,用于完成枚举项遍历,位操作等 + + 将给定的枚举类型拆解成各种可能会用到的数据结构。 + 可以用在字段直接初始化时。 + + + + + + 检查是否包含给定,且只关注是否完全包含 + + 要检查的特征 + 过滤的特征 + + + + + 设置目标的枚举值 + + + + + + + 设置目标的枚举值 + + + + + + + 复位目标的枚举值 + + + + + + + 复位目标的枚举值 + + + + + + + 翻转目标的枚举值 + + + + + + + 翻转目标的枚举值 + + + + + + + 反射组值 + + + + + 反射组名称 + + + + + 枚举值映射字典,使用枚举值来找到其在数组中位置 + + + + + 枚举中的项目数量 + + + + + 构建一个枚举辅助器 + + + + + 获取枚举值枚举器 + + + + + + 获取枚举名称枚举器 + + + + + + 获取枚举值与名称对枚举器 + + + + + + 获取给定的枚举值在整个枚举中的顺序索引 + + 枚举值 + 返回顺序索引,找不到会返回-1 + + + + 解构一个flags枚举(逐个输出给定枚举中的枚举项目) + + + + + + 获取这个枚举的名称 + + + + + + + 覆盖枚举名称 + + + + + + + 获取枚举值枚举器 + + + + + + 获取枚举名称枚举器 + + + + + + 获取枚举值与名称对枚举器 + + + + + + 获取给定的枚举值在整个枚举中的顺序索引 + + 枚举值 + 返回顺序索引,找不到会返回-1 + + + + 枚举宏,用于完成枚举项遍历,位操作等 + + + + + 检查是否包含给定,且只关注是否完全包含 + + 要检查的特征 + 过滤的特征 + + + + + 设置目标的枚举值 + + + + + + + 复位目标的枚举值 + + + + + + + 通过给定的选择切换目标的枚举值 + + + + 选择是设置还是清空 + + + + + 翻转目标的枚举值 + + + + + + + 保守事件控制器 + + + + + 事件索引器 + + + + + 事件状态寄存器 + + + + + 保守地利用控制器调用一个事件分发器 + + + + + 获取一个委托的名称 + + 注意:匿名委托或lambda表达式可能不具有有效的名称 + + + 目标可以是空,无需进行空检查 + + + + + + 外部复位委托的标志,用于修复委托的谨慎调用 + + + + + + + 谨慎地调用一个事件分发器 + + 注意:此方法的性能消耗相较直接invoke方法会更大, + 并且你依然需要在外部包括try-catch模块来处理发生的错误(不处理也行), + 此方法会在错误发生后阻止下一次调用,直到方法被标记为修复(fix) + + + + + 调用参数 + + + + + 保守地调用一个事件分发器 + + + + + 保守地调用一个事件分发器 + + + + + 默认的json序列化设置 + + + + + 忽略循环引用 + + + + + 获取系统枚举路径 + + + + + + 获取工程的路径 + + 返回当前工程文件的路径,是工程的根目录 + + + + 获取assets的路径 + + (注意,获取工程内的文件只在编辑器内有效) + + + + 返回..\{project name}\Assets + + + + 获取Packages的路径 + + (注意,获取工程内的文件只在编辑器内有效) + + + 返回..\{project name}\Packages + + + + 获取项目程序根目录下的一个文件绝对路径(这个不适合用在生产环境) + + + + + + + 文件是否存在 + + + + + + + 获取给定路径 文件的哈希 + + + 返回64位长度的十六进制字符串 + + + + 获取没有扩展名的文件路径( C:\……\a.txt => C:\……\a ) + + 输入文件路径 + + + + 获取文件名称(忽略前面的文件路径) + + + + + + + 获取文件名称且不包含扩展名(忽略前面的文件路径,和后面的扩展名) + + + + + + + 将路径转为web路径 + + + + + + + 文件句柄 + + 异步的读取保存方法通常不需要等待,可以在末尾使用.ConfigureAwait(false),避免执行完毕后切换上下文,如果在ui线程中就不要调用这个了,其他情况下建议调用。 + + + + + + 目标平台 + + + + + 当前文件句柄目标对应当前平台 + + + + + 与当前平台对应的文件句柄 + + + + + 与当前平台对应的文件句柄 + + + + + 创建一个与目标平台对应的文件处理器句柄 + + + + + + 同步读取文件 + + + + + + + + + 同步读取字节流 + + + + + + + + + 同步写入文件 + + + + + + + + + 同步写入字节流 + + + + + + + + + 异步读取文件 + + + 成功事件 + 失败事件 + 返回文件读取状态 + + + + + 异步读取字节流 + + + 成功事件 + 失败事件 + 返回文件读取状态 + + + + + 异步写入文件 + + + + 成功事件 + 失败事件 + 返回文件写入成功状态 + + + + + 异步写入字节流 + + + + 成功事件 + 失败事件 + 返回文件写入成功状态 + + + + + 从给定序列化器中读取 + + + + + + + + + + 从给定序列化器中写入 + + + + + + + + + + 异步从给定序列化器中读取 + + + + + + + + + + + 异步从给定序列化器中写入 + + + + + + + + + + + + 拼接路径 + + + + + + + + 将一个相对路径转到目标设备上游戏数据文件夹下的绝对路径 + + + + + + + 将一个相对路径转到流媒体资产下的绝对路径 + + + + + + + 将一个相对路径转到持久数据目录下的绝对路径 + + + + + + + 将一个相对路径转到临时数据/缓存目录下的绝对路径 + + + + + + + windows平台文件句柄 + + + + + web平台文件句柄 + + + + + 获取一个基于StreamingAssets的文件路径 + + 相对路径文件 + + + + + 获取一个基于DataPath的文件路径 + + 相对路径文件 + + + + + 获取一个基于PersistentDataPath的文件路径 + + 相对路径文件 + + + + + 写文件 + + 绝对路径 + 写入文本 + + + + + 读文件 + + 绝对路径 + + + + + 读文件 + + + + + + + + 写文件 + + 写入文本 + 绝对路径 + 文件名 + + + + + 读文件 + + 文件名 + 绝对路径 + + + + + 读文件 + + 文件名 + 文件内容 + 绝对路径 + + + + + 检查文件是否存在 + + + + + + + + 保存对象为二进制 + + + + + + + 读取二进制为对象 + + + + + + 保存对象为二进制 + + + + + + + + 读取二进制为对象 + + + + + + + 将一个对象直接序列化为json并进行保存 + + 默认添加缩进格式,忽略循环引用 + + + 绝对路径 + + + + + + 从给定路径的文件中读取对象 + + + + + + 从给定路径的文件中读取对象 + + + + + + + 将一个对象直接保存为相对于StreamingAssets的文件 + + 默认添加缩进格式,并忽略循环引用 + + + + + + + + 从相对于StreamingAssets的文件中读取对象 + + + + + + 从相对于StreamingAssets的文件中读取对象 + + + + + + + 将一个对象直接保存为相对于DataPath的文件 + + 默认添加缩进格式,并忽略循环引用 + + + + + + + + 从相对于DataPath的文件中读取对象 + + + + + + 从相对于DataPath的文件中读取对象 + + + + + + + 将一个对象直接保存为相对于PersistentDataPath的文件 + + 默认添加缩进格式,并忽略循环引用 + + + + + + + + 从相对于PersistentDataPath的文件中读取对象 + + + + + + 从相对于PersistentDataPath的文件中读取对象 + + + + + + + 将一个对象保存为自定义结构 + + + + + + + + + 将一个对象从自定义结构读取 + + + + + + + + + + 序列化器 + + + + + 这个没有用,需要使用子类限定访问各自的formatter + + + + + 序列化 + + + + + + + 序列化 + + + + + + + 反序列化 + + 类型 + 内容 + + + + + 反序列化 + + 类型 + 内容 + + + + + json序列化器 + + + + + 二进制序列化器 + + + + + 获取对象序列化字节流 + + + + + + + + 获取字节流反序列化对象 + + + + + + + 缓动步进库 + + + + + 线性步进 + + 当前值 + 终点值 + 最大步进值 + + + + + 线性步进 + + 当前值 + 终点值 + 最大步进值 + + + + unity对象宏 + + + + + 获取当前活动场景的所有根节点对象 + + + + + + 获取当前活动场景的所有根节点对象 + + + + + + 获取所有场景中的组件对象 + + + + + + + 获取所有场景中的组件对象 + + + + + + + 获取所有场景中的组件对象 + + + + + + + 获取当前活动场景的所有根节点对象 + + + + + + 在当前活动场景中查找所有组件(效率肯定比官方要低,但基于sceneManager的api兼容性应该更好) + + + + + + + 无论如何都要获取一个对象, + 如果这个对象是空的,那么就new一个出来 + + + + + + + + 获取此枚举器在给定索引下的值 + + + + + + + + + + 获取此枚举器在给定索引下的值,并且允许在无法找到的情况下使用null返回 + + + + + + + + + 按顺序获取一个节点的所有父级节点 + + + + + + + 按顺序获取一个节点的所有父级节点(安全模式:在遍历中操作循环体时,此处列表保持不变) + + + + + + + 获取一个变换节点下所有的子成员(这个在unity中可以直接通过transform隐式转换) + + + + + + + 获取一个变换节点下所有的子成员(安全模式:在遍历中操作循环体时,此处列表保持不变) + + + + + + + 获取一个变换节点下所有的子成员 + + + + + + + 获取一个变换节点下所有的子成员(安全模式:在遍历中操作循环体时,此处列表保持不变) + + + + + + + 递归获取一个变换节点下指定深度的子成员 + + + 递归深度,1表示仅在第一子集中寻找,2表示在包含下一级在内的所有成员中寻找 + + + + + 深度优先地获取一个根节点下所有的子成员 + + + + + + + 广度优先地获取一个根节点下所有的子成员 + + + + + + + 广度优先地获取一个根节点下所有的子成员,并通过黑白名单机制排除节点。 + 当一个节点上包含黑名单组件时,这个节点将不再压入栈,他的子项也就不会被遍历。 + 而如果这个界面上同时也包含白名单组件时,这个节点将继续被遍历 + + + 置位时,挂载黑名单成员的对象将会直接输出,这会破坏原有的深度顺序 + + + + + 广度优先地获取一个根节点下所有的子成员,并通过黑白名单机制排除节点。 + 当一个节点上包含黑名单组件时,这个节点将不再压入栈,他的子项也就不会被遍历。 + 而如果这个界面上同时也包含白名单组件时,这个节点将继续被遍历 + + + + + + + + 广度优先地获取一系列节点下的子成员 + + + + + + + 无论如何,获取这个组件,如果没有,就创建它 + + + + + + + + 无论如何,获取这个组件,如果没有,就创建它 + + + + + + + + 无论如何,获取这个组件,如果没有,就创建它 + + + + + + + + 无论如何,获取这个组件,如果没有,就创建它 + + + + + + + + 在给定的集合中寻找一个组件 + + + + + + + + + 在给定的集合中寻找一个组件 + + + + + + + + + 在给定的集合中寻找一个组件 + + + + + + + + + 在给定的集合中寻找一个组件 + + + + + + + + + 将给定列表中的对象获取并转换为给定类的组件,返回的组件列表与原始列表一一对应 (这意味着其中包含无效的对象) + + + + + + + + 将给定列表中的对象获取并转换为给定类的组件,但是会跳过为空的元素 + + + + + + + + 将给定列表中的对象获取并转换为给定类的组件,但是会跳过为空的元素,同时可以获取到迭代中的索引,组件引用等 + + + + 将所有元素拆开的枚举器,按顺序分别为:组件所处变换,位于列表的顺序索引,组件引用 + + + + 在所有子成员中深度优先遍历给定组件; + 注意这只会在子项中查找。 + + + + 遍历深度,1表示仅在子集中寻找,2表示在子集中寻找,如果找不到的将在子集的子集中寻找,以此类推 + + + + + 在所有子成员中广度优先地遍历给定组件; + 注意这只会在子项中查找。 + + + + + + + + 按深度优先寻找一个组件; + 注意这只会在子项中查找。 + + + + 遍历深度,0表示仅在子集中寻找,1表示在子集中寻找,如果找不到的将在子集的子集中寻找,以此类推 + + + + + 获取一系列定义的组件 + + 给定所需的组件类型后,将会在给定的集合中进行组件查找,并返回首次找到的所有组件。 + 返回的顺序与定义的组件顺序并不会完全一致,这取决于找到的顺序 + + + 给定的集合,集合的顺序会影响组件的输出顺序 + 组件集合,可以有重复的元素 + 返回当前找到的组件,以及组件在定义中的顺序 + + + + 分隔符 + + + + + 将家族名称转为家族名枚举器 + + + + + + + 将家族名枚举器转为家族名称 + + + + + + + 获取当前对象的家族全名枚举器 (parent -> target) + + + + + + + 获取当前对象的家族名称 + + + + + + + 获取当前对象的家族全名枚举器 (parent -> target) + + 要获取名称的成员 + 截止的长辈,为null或没有匹配项目时将返回全名;返回的名称序列中包含截止长辈的名称 + + + + + 直接通过路径查找 + + + + + + + + + + + + + 根据家族名称在一个根节点上进行查找,通过逐名称限定查找,可以匹配到另一个完全相同的节点中的成员上 + + 查找起点 + 需要匹配节点的家族名称,应当是从父级到子集顺序的名称枚举,根节点名称应和查找起点同名 + 返回查找到的节点 + 忽略根路径名称的差异 + 重路由节点源,当路径匹配到这个项目时,将直接切换到重路由节点上 + 重路由节点,在路径中径直通过这个节点 (必须为并非根节点的对象) + 检查数量的极限,防止重路由时发生死循环(数值为层级的深度) + + + + + 根据家族名称在一个根节点上进行模糊的查找,通过逐名称限定查找,可以匹配到另一个稍有不同的节点中的成员上; + + + + + 可以容许的差异,如果找不到一个完全匹配的项目,那么容许它存在一定的差异 + + + + + 在给定的成员中模糊查找一个名称含义代表Label的成员 + + + + + + + 销毁所有子节点 + + + + + 销毁条件为真的节点 + + 节点列表 + 执行的条件,为真时销毁 + + + + 销毁条件为真的节点 + + 节点列表 + 执行的条件,为真时销毁 + + + + 获取组件,如果组件为空则在节点中查找,如果还没有则创建这个组件 + + 要注意使用格式应当类似于这样: + rigidbody = rigidbody.GetIfComponent(this); + + + 组件类型 + 组件引用 + 要查找组件的位置 + + + + + 获取组件,如果组件为空则在节点中查找,如果还没有则创建这个组件 + + 要注意使用格式应当类似于这样: + rigidbody = rigidbody.GetIfComponent(this); + + + 组件类型 + 组件引用 + 要查找组件的位置 + + + + + 获取组件,如果组件为空则在节点中查找,如果还没有则创建这个组件 + + 要注意使用格式应当类似于这样: + rigidbody = rigidbody.GetIfComponent(this); + + + 组件类型 + 组件引用 + 要查找组件的位置 + + + + + 获取组件,如果组件为空则在节点中查找,如果还没有则创建这个组件 + + 要注意使用格式应当类似于这样: + rigidbody = rigidbody.GetIfComponent(this); + + + 组件类型 + 组件引用 + 要查找组件的位置 + + + + + 加载宏 + + + + + 文件分类字典,约定资源放置的文件路径,减少重名的几率 + + + + + 获取一个类型应该存在的根路径 + + + + + + + + 获取一个类型应该存在的根路径 + + + + + + + + 查找给定类型的映射集 + + + + + + + + 添加给定类型的映射集 + + + 返回这个映射集 + + + + 清除缓存 + + 清理缓存可以释放内存,但是也会导致后续重新加载资源时需要重新获取。 + + + + + + 将一个资源加入到缓存中 + + 可以享受高速查找的功能; + 但是此处并不会管理对象的生命周期,如果对象过期或被销毁,则必须手动清理缓存。 + + + + + + + + 将一个对象从缓存中删除 + + + + + + + + 将一个对象从缓存中删除 + + + + + + + 加载一个给定名称的特定文件类型的文件(仅对已分类的资源进行加载) + + 理论上这对于常用的内容来说加载速度会快多,首次加载该类资源需要O(n),除首次之外查找的速度都是O(m+1)。 + 注意:如果场景中存在多个同类且名称相同的资源时,首次加载时返回的目标可能会与其他情况下返回的资源目标不一样。 + 所以请确保场景中所有的资源名称保持唯一。 + + + + 目标资源的名称(不是路径名) + 读取的资源 + + + + + 平滑宏 + + + + + 切换缓动模式 + + + 缓动模式 + + + + + 切换缓动模式 + + + 最小值 + 最大值 + 缓动模式 + + + + + 切换缓动模式 + + + 缓动模式 + + + + + 宏转换系列 + + + 坐标系统换算库 + + + + 像Maya就是Y向上的三维软件,它原来属于Silicon Graphice,Inc.的硬件开发,使用的也是SGI的标准; + 以及DX,OpenGL也是使用Z缓冲区之类的名称来处理屏幕空间渲染。 + Unity,Zbrush,DirectX使用的是Y轴向上的左手坐标系 + Maya,OpenGL使用的是Y轴向上的右手坐标系 + + 像Unreal诞生时Maya还没诞生,大家都用的是3D Max,所以采用了Z轴向上的左手坐标系。 + 另外3D Max,source engine,cry engine, blender使用的是Z轴向上的右手坐标系; + + 数学上可能左手会好些 + + 将Y轴向上的坐标系转为Z轴向上的坐标系; + + + + + + + 将Z轴向上的坐标系转为Y轴向上的坐标系; + + + + + + + 世界向上表面坐标转换方法 + + + + + + + 世界向上表面坐标转换方法 + + + + + + + 世界向上表面坐标转换方法 + + + + + + + 将一个坐标从物体局部空间变换到世界空间 + + + + + + + + 将一个坐标从世界空间变换到物体局部空间 + + + + + + + + 将一个矢量从物体局部空间旋转变换到世界空间 + + + + + + + + 将一个矢量从世界空间变换到物体局部空间旋转 + + + + + + + + 将一个矢量从物体局部空间旋转变换到世界空间 + + + + + + + + 将一个矢量从世界空间变换到物体局部空间旋转 + + + + + + + + 将一个矢量应用物体缩放到世界空间 + + + + + + + + 将一个矢量解除物体缩放到世界空间 + + + + + + + + 将一个矢量应用物体本地缩放到世界空间 + + + + + + + + 将一个矢量解除物体本地缩放到世界空间 + + + + + + + + 将一个矢量应用物体变换到世界空间(缩放,旋转,偏移) + + + + + + + + 将一个矢量解除世界变换到物体空间(缩放,旋转,偏移) + + + + + + + + 将一个矢量应用物体变换到世界空间(矩阵) + + + + + + + + 将一个矢量解除世界变换到物体空间(矩阵) + + + + + + + + 邻居网格 + + 静态网络,其中的数据必须是静态的,如果需要每帧改变,需要让所有的数据都保持动态,并在每帧进行维护。 + + + + + + + 网格原点坐标 + + + + + 网格单位晶格尺寸 + + + + + 网格各轴晶格数量 + + + + + 网格总体尺寸 + + + + + 网格的最大邻居数量 + + + + + 此网格的盒体范围 + + + + + 此网格的项目总数 + + + + + 当前应获取的邻居的索引 + + + + + 网格原点坐标 + + + + + 网格单位晶格尺寸 + + + + + 网格各轴晶格数量 + + + + + 网格遍历时可获取的最大邻居数量 + + + + + 总数 + + + + + 固定随机数 + + + + + 网格系统存储地 + + + + + 安全模式 + + + + + 临近网格 + + 网格原点坐标 + 网格晶格尺寸 + 网格总尺寸 + 单个晶格内最大邻居数量 + + + + 邻居网格索引。 + + 索引会自动根据所处的空间进行换算,并暂存当前换算结果。 + 注意:如果输入世界空间的坐标,在经过转换后可能会丢失细节。 + 另外,不建议序列化这类数据的项目 + + + + + + 目标临近网格 + + + + + 索引指代目标 + + + + + 指代目标时有效的 + + + + + 当前坐标空间 + + + + + 当前坐标空间中的索引 + + + + + 此索引器的目标对象 + + + + + 创建一个邻居网格索引,随后使用SetDrivenAsWorld来指定坐标值 + + + 可以为空,但会无法使用其中的代理方法进行网格的访问 + + + + 获取为 世界空间 + + + + + + 获取为 网格系统本地坐标空间 + + + + + + 获取为 网格系统本地单位空间 + + + + + + 获取为 三维索引 + + + + + + 获取为 线性索引 + + + + + + 获取为 世界空间的索引结构,通常用于获取调试的晶格坐标 + + + + + + 设置为 世界空间 + + + + + + 设置为 网格系统本地坐标空间 + + + + + + 设置为 网格系统本地单位空间 + + + + + + 设置为 三维索引 + + + + + + + 设置为 线性索引 + + + + + + + 转换当前索引到目标空间 + + + + + + 将当前的目标转换到世界空间 + + + + + 将当前的目标转换到本地空间 + + + + + 将当前的目标转换到单位空间 + + + + + 将当前的目标转换到三维索引 + + + + + 将当前的目标转换到线性索引 + + + + + 加入网格 + + + + + + 从网格中移除 + + + + + + 检查是否在网格中 + + + + + + 获取当前的邻居 + + + + + + 获取范围内的邻居 + + 范围 + + + + + 获取所有邻居 + + + + + + 获取范围内的所有邻居 + + 范围,是 + + + + + 元素集线器映射组索引器 + + 将一个跨越多个单位晶格的对象用一个集线器代理, + 引用到集线器上相当于引用到这多个晶格上。 + + 与常规的单个索引器功能类似 + + + + + + 目标邻近网格 + + + + + 目标对象 + + + + + 所有的索引 + + + + + 目标对象 + + + + + 此映射组集线器的索引数量 + + + + + 此索引集内的所有索引 + + + + + 创建组映射 + + + + + + + 添加一个索引,如果重复了就不会继续加入 + + + + + 删除一个索引 + + + + + 删除所有索引 + + + + + 将此索引内的成员绘制在场景中 + + + + + 临近网络空间枚举 + + + + + 世界空间 + + + + + 本地坐标空间 + + + + + 本地单位空间 + + + + + 三维索引空间 + + + + + 线性索引 + + + + + 世界空间 变换为 网格系统本地坐标空间 + + 世界空间 + + + + + 网格系统本地坐标空间 变换为 世界空间 + + 网格系统本地坐标空间 + + + + + 网格系统本地坐标空间 变换为 网格系统本地单位空间 + + 网格系统本地坐标空间 + + + + + 网格系统本地单位空间 变换为 网格系统本地坐标空间 + + 网格系统本地单位空间 + + + + + 网格系统本地单位空间 变换为 三维索引 + + 网格系统本地单位空间 + + + + + 三维索引 变换为 网格系统本地单位空间 + + 三维索引 + + + + + 三维索引 变换为 线性索引 + + 三维索引 + + + + + 线性索引 变换为 三维索引 + + 线性索引 + + + + + 线性索引 变换为 网格系统本地单位空间 + + 线性索引 + + + + + 网格系统本地单位空间 变换为 线性索引 + + 网格系统本地坐标空间 + + + + + 获取一个索引在给定边上体素数量的体素正方体内的阵列索引 + + 这同时会参考网格整体的晶格数量 + + + 线性索引 + 边长 + + + + + 获取单一的邻居索引 + + + + + 获取单一的邻居索引 + + + + + + + + 获取具有映射关系的集线器索引 + + + + + + + 在给定索引处添加一个项目 + + + + + + + + 在给定索引处添加一个项目 + + 索引 + + 返回是否添加成功 + + + + 移除给定索引处的项目 + + 索引 + 项目 + 返回是否移除成功 + + + + 移除给定索引处的所有项目 + + + + + + 移除给定索引处的项目 + + 索引 + 项目 + 返回是否移除成功 + + + + 移除给定索引下所有项目 + + 索引 + 返回是否移除成功 + + + + 清空网格 + + + + + 查询给定索引处是否存在项目 + + 索引 + 项目 + 返回项目是否存在 + + + + 查询给定索引处是否存在项目 + + 索引 + 项目 + 返回项目是否存在 + + + + 获取当前邻居数量 + + 索引 + + + + + 获取当前邻居数量 + + 索引 + + + + + 获取范围内的邻居 + + 索引 + 检查的范围,是一个方格的边长,必须为一个奇数(当不为奇数时,将向下取奇,最小为1,代表索引所指代的网格) + + + + + 获取邻居 + + 索引 + + + + + 获取范围内的邻居 + + 所在位置的索引 + 检查的范围,是一个方格的边长,必须为一个奇数(当不为奇数时,将向下取奇,最小为1,代表索引所指代的网格) + + + + + 获取邻居 + + 所在位置的索引 + + + + + 获取给定索引范围内的所有邻居 + + 索引 + 范围 + + + + + 获取给定索引范围内的所有邻居 + + 索引 + 范围 + + + + + 尝试获取给定索引下的所有的邻居 + + 索引 + 邻居 + 是否成功获取 + + + + 获取所有的邻居 + + 索引 + 邻居 + 是否成功获取 + + + + 临近网格索引器接口 + + + + + 获取为映射集的方式 + + + + + + + 获取为单索引的方式 + + + + + + + 临近网格扩展方法 + + + + + 安全地获取为映射集 + + + + + + + + + 安全地获取为索引 + + + + + + + + + 扩展库 + + + + + 检查给定的值是否在范围内[min, max] + + + + + + + + + 检查给定的值是否在索引范围内[min, max) + + + + + + + + + 获取大于零的值 + + + + + + + 获取小于零的值 + + + + + + + 获取大于零的值 + + + + + + + 获取小于零的值 + + + + + + + 获取大于零的值 + + + + + + + 获取小于零的值 + + + + + + + 获取大于一的值 + + + + + + + 获取小于一的值 + + + + + + + 获取大于一的值 + + + + + + + 获取小于一的值 + + + + + + + 获取大于一的值 + + + + + + + 获取小于一的值 + + + + + + + 获取绝对值 + + + + + + + 获取绝对值 + + + + + + + 获取绝对值 + + + + + + + 设置负号 + + 为真时使数值为负, 否时是正数 + + + + + 设置负号 + + 为真时使数值为负, 否时是正数 + + + + + 设置负号 + + 为真时使数值为负, 否时是正数 + + + + + 二次方 + + + + + + + 三次方 + + + + + + + 四次方 + + + + + + + 五次方 + + + + + + + 二次方 + + + + + + + 三次方 + + + + + + + 四次方 + + + + + + + 五次方 + + + + + + + 二次方 + + + + + + + 三次方 + + + + + + + 四次方 + + + + + + + 五次方 + + + + + + + 获取组件,并适配函数式编程 + + + + + + + + + 此对象的父类是第二者吗 + + + + + + + + 此对象是第二者的父类吗 + + + + + + + + 此对象与第二者是兄弟吗 + + + + + + + + 检查一个矢量的各轴是否在一个曼哈顿距离半径内, + 可以用于对齐检查等。 + + 要检查的矢量 + 距离半径 + + + + + 矢量正交化 + + + + + + + 获取矢量各轴符号 + + + + + + + 延斜线对齐一个点 + + + + + + + 限制在二维范围内(x:min, y:max) + + + + + + + + 获取值在范围内的单位值 + + + + + + + + 安全地获取值在范围内的单位值 + + + + + + + + 映射值到范围 + + + + + + + + 重映射,将处于原始范围内的值映射到另一个范围内 + + + + + + + + + 将一个值在给定范围内颠倒 + + + + + + + + 转换为可以用于缩放的三维矢量 + + + + + + + 矢量各维度的平方根计算(注意平方根计算不能为负数) + + + + + + + 矢量各维度的平方根计算(注意平方根计算不能为负数) + + + + + + + 将此三维矢量转为二维矢量,具体转换由格式文本决定 + + + 将需要转换的两个轴向名称按需要的顺序填入即可,比如需要获得一个在xz平面的二维矢量,填入“xz”,不分大小写,最大只接受前两个字符的描述,不存在于设定字符中的维度将保持为0 + + + + + 将此三维矢量中部分轴归零,具体转换由格式文本决定 + + + 将需要归零的轴向名称按需要的顺序填入即可,最大只接受前两个字符的描述 + + + + + Pows each element of the vector. + + + + + + + + 将这个向量投影到一个给定坐标的向上的平面上,同时变换到平面坐标 + + 矢量或坐标 + 平面原点 + + + + + 向量吸附到网格上,在比例中央不进行吸附 + + 矢量或坐标 + 偏移量 + 网格单位 + 阈值比例[0-1] + + + + + 向量吸附到网格上 + + 矢量或坐标 + 偏移量 + 网格单位 + 阈值比例[0-1] + + + + + 由三个标准矢量构成的矢量集合 + + + + + 矢量正交化 + + + + + + + 点到直线的距离。 + + + + + + + + + 基于t返回开始和结束之间的平滑值。 + + + + Position between 0 and 1. + + + + + 基于t返回开始和结束之间的平滑值。 + + + + Position between 0 and 1. + Number of interpolations to make. + + + + + 返回值的小数部分。 + + The value to get the fractional of. + + + + + 返回值的小数部分。 + + The value to get the fractional of. + + + + + 返回值的小数部分。 + + The value to get the fractional of. + + + + + 返回一个基于t的弹跳值,弹跳速度会越来越快。 + + The value to bounce. + + + + + 使用统一的变换途径变换一系列坐标点 + + + + + + + + + + + 变换叠加矢量偏移量 + + + + + + + + 变换添加旋转 + + + + + + + + 变换叠加缩放 + + + + + + + + 变换所有矢量 + + + + + + + + + 基本Socket + + + + + ip地址端口 + + + + + 通讯接口 + + + + + 编解码方案 + + + + + 创建连接到指定ip端口的socket对象 + + + + 寻址方案 + 套接字类型 + 协议 + + + + + 简单的局域网消息传递客户端 + + + + + 监听线程 + + + + + 创建一个连接 + + 提供一个ip地址 + 提供一个端口 + + + + 客户端给服务器发送消息 + + + + + + 如果当前已连接,启用一个快速消息会话 + + 可以使用任意Socket.send方法发送消息到另一主机 + + + + + + 简单的局域网消息传递服务端 + + + + + 等待客户端的连接 并创建与之通信的Socket + + + + + + 服务器端 不停接收 客户端 发送过来的消息 + + + + + + 服务器给客户端发送消息 + + + + + + 移动方向力 + + + + + 移动加速度 + + + + + 旋转方向 + + + + + 期望速度 + + + + + 当前速度 + + + + + 获取当前选择的主要控制transform + + + + + 鼠标中键滚动 + + + + + 向前移动,为负时向后移动 + + + + + 向右移动,为负时向左移动 + + + + + 向上移动,为负时向下移动 + + + + + 蹲下 + + + + + 顺时针滚转,为负时逆时针滚转 + + + + + 切换奔跑 + + + + + 鼠标偏移量 + + + + + 屏幕坐标 + + + + + 光标在屏幕上的射线 + + + + + 捕获光标在场景中的位置 + + + + + 移动方向力 + + + + + 移动加速度 + + + + + 旋转方向 + + + + + 期望速度 + + + + + 当前速度 + + + + + 是否接触地面 + + + + + 获取当前选择的主要控制transform + + + + + 获取安全的重力单位方向 + + + + + 刚体所在的变换 + + + + + 鼠标左键按下 + + + + + 鼠标左键释放 + + + + + 鼠标左键状态 + + + + + 鼠标右键按下 + + + + + 鼠标右键释放 + + + + + 鼠标右键状态 + + + + + 鼠标中键按下 + + + + + 鼠标中键释放 + + + + + 鼠标中键状态 + + + + + 鼠标中键滚动 + + + + + 向前移动,为负时向后移动 + + + + + 向右移动,为负时向左移动 + + + + + 向上移动,为负时向下移动 + + + + + 蹲下 + + + + + 顺时针滚转,为负时逆时针滚转 + + + + + 切换奔跑 + + + + + 鼠标偏移量 + + + + + 移动模式部分 + + + xeric玩家控制器,预制了一系列简单的移动操作, + 可以通过重写其中的部分功能来实现更多的支持项目 + + + + + 行动 + + + + + 进入行动模式 + + + + + 获取模式下行动委托 + + + + + + + 获取行动模式下委托 + + + + + + + + 执行行动更新 + + + + + 当此行动组件模式发生改变时 + + + + + 在地面上 + + + + + 作为地面的碰撞体目标 + + + + + 地面碰撞射线结果 + + + + + 移动方向力 + + + + + 移动加速度 + + + + + 旋转方向 + + + + + 期望速度 + + + + + 当前速度 + + + + + 是否接触地面 + + + + + 此角色历史行动模式 + + + + + 获取当前选择的主要控制transform + + + + + 获取安全的重力单位方向 + + + + + 刚体所在的变换 + + + + + 角色中心世界坐标 + + + + + 鼠标左键按下 + + + + + 鼠标左键释放 + + + + + 鼠标左键状态 + + + + + 鼠标右键按下 + + + + + 鼠标右键释放 + + + + + 鼠标右键状态 + + + + + 鼠标中键按下 + + + + + 鼠标中键释放 + + + + + 鼠标中键状态 + + + + + 鼠标中键滚动 + + + + + 向前移动,为负时向后移动 + + + + + 向右移动,为负时向左移动 + + + + + 向上移动,为负时向下移动 + + + + + 蹲下 + + + + + 顺时针滚转,为负时逆时针滚转 + + + + + 切换奔跑 + + + + + 鼠标偏移量 + + + + + 角色控制器 + + + + + 当游戏退出时 + + + + + 具体移动物理更新 + + + + + + 普通移动模式. + + + + + 限制旋转俯仰角度 + + + + + + + 限制旋转俯仰角度 + + + + + + + 是否接触地面 + + 脚下的碰撞体是否发生了改变 + + + + + 根据状态设置光标 + + + + + + 锁定鼠标光标 + + + + + 锁定鼠标光标 + + + + + 角色移动控制器 + + + + + 忽略时间缩放 + + + + + 移动组件 + + + + + 执行更新 + + 当前更新模式 + 当前更新帧时间 + + + + 激活一个移动组件 + + + + + + 上帝视角控制器,主要通过鼠标拖拽移动 + + + + + 鼠标左键状态 + + + + + 屏幕坐标 + + + + + 光标在屏幕上的射线 + + + + + 旋转视角的中心 + + + + + 捕获光标在场景中的位置 + + + + + 移动更新逻辑 + + + + + 移动模式名称 + + + + + 启用调试绘制 + + + + + 当前已经初始化标志位 + + + + + 激活状态 + + + + + 父控制器 + + + + + 本身变换组件 + + + + + 本身变换组件对象 + + + + + 坐标 + + + + + 旋转 + + + + + 向前 + + + + + 向右 + + + + + 向上 + + + + + 摄像机变换组件 + + + + + 摄像机变换组件 + + + + + 摄像机旋转 + + + + + 摄像机坐标 + + + + + 摄像机向前 + + + + + 摄像机向右 + + + + + 摄像机向上 + + + + + 初始化时 + + + + + 启用时 + + + + + 无效时 + + + + + 更新事件每帧执行,并在输入和物理更新之前执行 + + + + + 物理移动更新阶段 + + + + + + 输入移动阶段 + + + + + + 移动到坐标 + + + + + + 移动这个偏移量 + + + + + + 限制旋转俯仰角度 + + + + + + + + 限制旋转俯仰角度 + + + + + + + + 根据状态设置光标 + + + + + + 锁定鼠标光标 + + + + + 锁定鼠标光标 + + + + + 二维布尔 + + + + + bool 数组,后面的n表示可以定义n个布尔值 + + + + + 布尔值,用整数保存 + + + + + 布尔数组长度 + + + + + 置位布尔位 + + + + + + 复位布尔位 + + + + + + 设置布尔位 + + + + + + + 获取布尔位 + + + + + + + 添加布尔位 + + + + + + 从末端移除一个布尔位 + + + + + 检查数组索引是否越界 + + + + + + + 重设数组长度 + + + + + + 获取布尔位置位于32位数组的哪一位上 + + 输入布尔位索引 + 获取在返回索引内的哪一位上 + 获取32位数组上的位置 + + + + 获取布尔位置位于32位数组的总长度 + + + + + + + 双胞胎哈希表 + + + + + A列表成员 + + + + + B列表成员 + + + + + A列表成员数量 + + + + + B列表成员数量 + + + + + 总数 + + + + + + + 默认保留空间 + + + + 将一个成员从 哈希表A 移动到 哈希表B,如果成员不存在于 哈希表A 则不会发生移动 + + + + + + 将一个成员从 哈希表B 移动到 哈希表A,如果成员不存在于 哈希表B 则不会发生移动 + + + + + + 将一个成员从 哈希表A 移动到 哈希表B,如果成员不存在于 哈希表A 则直接添加 + + + + + + 将一个成员从 哈希表B 移动到 哈希表A,如果成员不存在于 哈希表B 则直接添加 + + + + + + 添加到 哈希表A + + + + + + + 添加到 哈希表B + + + + + + + 移除从 哈希表A + + + + + + + 移除从 哈希表B + + + + + + + 可以直接获取一些没有空的类的空对象 + + 与直接使用default不同的是,这里会尝试创建一个空示例,这对于使用 + + + + + + + + 获取空对象 + + + + + 获取空列表 + + + + + 获取空列表 + + + + + 获取空列表 + + + + + 类型为T的空对象 + + + + + 获取包含一组空对象的列表 + + + + + + + 压力单位 (包括公制单位和英制单位) + + + + + 标准大气压 + + + + + 工程大气压 + + + + + 毫米汞柱 + + + + + 厘米汞柱 + + + + + 英寸汞柱 + + + + + 厘米水柱 + + + + + 英尺水柱 + + + + + 英寸水柱 + + + + + 毫巴 + + + + + 巴 + + + + + 帕 + + + + + 百帕斯卡 + + + + + 千帕斯卡 + + + + + 兆帕斯卡 + + + + + 磅每平方英尺 + + + + + 磅每平方英寸 + + + + + 千磅每平方英寸 + + + + + 千克力/平方厘米 + + + + + 千克力/平方米 + + + + + 托尔(用来代替单位大气压下毫米汞柱的真空绝对单位) + + + + + 时间节点 + + + + + 零点日期 + + + + + 零点间隔 + + + + + 最大日期 + + + + + 最大时间间隔 + + + + + 当前时刻 + + + + + 时间节点 + + + + + 是日期时间,否则为时间间隔 + + + + + 绝对时间 + + + + + 时间间隔 + + + + + 是绝对时间 + + + + + 是时间间隔 + + + + + 计算间隔时间 + + + + + + + + 计算间隔时间 + + + + + + + + 计算间隔时间 + + + + + + + + 计算间隔时间 + + + + + + + + 计算间隔时间 + + + + + + + + 计算时间叠加 + + + + + + + + 计算时间叠加 + + + + + + + + 计算时间叠加 + + + + + + + + 计算时间叠加 + + + + + + + + 计算时间叠加 + + + + + + + + 与累计秒比较 + + + + + + + + 与累计秒比较 + + + + + + + + 与累计秒比较 + + + + + + + + 与累计秒比较 + + + + + + + + 与经过时间比较 + + + + + + + + 与经过时间比较 + + + + + + + + 与经过时间比较 + + + + + + + + 与经过时间比较 + + + + + + + + 与日期比较 + + + + + + + + 与日期比较 + + + + + + + + 与日期比较 + + + + + + + + 与日期比较 + + + + + + + + 显式转换为日期时间 + + + + + + 显式转换为时间间隔 + + + + + + 转换为tick + + + + + + 转换为时间 + + + + + + 转换为累计秒 + + + + + + 累计秒转换为时间 + + + + + + 网页端文件读取 + 可以作为单独的成员,或使用外部单例系统使其单例化 + + + + + 添加一个加载步骤,所有加载步骤将会排队执行,可能会比较慢 + + + + + + + + 执行一个步骤的加载 + + + + + 直接协程加载(相对路径) + + + + + + + + 直接协程加载 + + + + + + + + 读取文件 + + + + + + + + + 二维空间的样条曲线 + + 界面样条曲线只能在父级组件定义的尺寸范围SizeDelta内计算 + + + + + + 控制点 + + + + + 曲线循环 + + + + + 获取可用的曲线点 + + + + + 将指向全长的t转为局部的t + + + 距离给定t最近的上一个点 + 给定t在两点间的局部t + + + + 获取索引下的控制点 + + + + + + + 矩形样条曲线点 + + + + + 锚点本地空间 + + + + + 起点手柄世界空间 + + + + + 起点手柄本地空间 + + + + + 终点手柄世界空间 + + + + + 终点手柄本地空间 + + + + + 节点旋转 + + + + + 节点的z轴欧拉本地旋转 + + + + + 本地缩放 + + + + + 创造样条曲线点 + + + + + + 获取映射值对应曲线位置 (建议按顺序计算旋转) + + 曲线映射值,范围应当在0-1 + + + + + 获取映射值对应曲线的额外值 + + + + + + + 获取点处的锚定位置 + + + + + + 样条曲线 + + + + + 控制点 + + + + + 曲线循环 + + + + + 获取可用的曲线点 + + + + + 将指向全长的t转为局部的t + + + 距离给定t最近的上一个点 + 给定t在两点间的局部t + + + + 获取索引下的控制点 + + + + + + + 样条曲线点 + + + + + 空点 + + + + + 起点手柄叠加在点上的“世界坐标” + + + + + 起点手柄本地位置 + + + + + 终点手柄叠加在点上的“世界坐标” + + + + + 终点手柄本地位置 + + + + + 节点旋转 + + + + + 此处的旋转 + + + + + 创建样条曲线点 + + + + + + 创建样条曲线点 + + + 手柄方向(起点到终点的方向) + + + + 创建样条曲线点 + + + 手柄方向(起点到终点的方向) + 手柄权重(起点到终点的方向) + + + + 创建样条曲线点 + + + 起点手柄相对位置 + 终点手柄相对位置 + + + + 创建样条曲线点 + + + 起点手柄方向 + 起点手柄权重 + 终点手柄方向 + 终点手柄权重 + + + + 获取列表的实时哈希 + + + + + + 获取曲线长度(不拟合,如果曲线弯折幅度较大的话会与实际长度存在较大差异) + + + + + + 获取曲线长度(积分拟合) + + + + + + 获取t处的曲线长度(积分拟合) + + + + + + 获取映射值对应曲线位置 + + 曲线映射值,范围应当在0-1 + + + + + 获取映射值对应曲线位置 (建议按顺序计算旋转) + + 曲线映射值,范围应当在0-1 + + + + + 获取映射值对应曲线的额外值 + + + + + + + 获取映射值对应曲线的颜色 + + + + + + + 四元数归一化 + + + + + + + 球面线性插值(基于 [Shoe87] 实现) + + + + + + + + + 线性插值归一化(当输入的两个四元数并不是单位四元数) + + + + + + + + + 获取共轭四元数 + + + + + + + 时间戳标记 + + 允许获取一个绝对的世界时间戳,或者一个本地的时间戳(自动计数器) + 在一秒内允许重复获取65535个不同的标记,返回为16位长度的字符串。 + 然后基于这个时间戳计算全局唯一名称 + + + + + 基础的时间戳参数(用于指定唯一命名) + 格式应该类似:123456789abcdef0001 + 前面的是时间,后面的是同一时间下的物体计数 + + DecimalDigit是时间码要转为的格式,比如16进制,就是16 + DecimalTotalWidth是long类型在转为进制码后最大的长度,比如64位转为16进制后占用16位,就填16 + CompletePrefixZeroCount是当前物体计数的位数,这里默认为4 + DecimalMaxCount是在上述进制下,物体计数位数内,该位数能保存的最大数量,比如4位16进制数相当于short int,所以是65535 + + 转换进制数 + + + + + 进制数需要补全的长度,这是long类型在转为指定进制后能够到达的最长的位数。 + + + + + 需要补全前导0的数量(后缀位数), + 这会影响时间戳标记名称的后缀数量(比如4位应当在16进制下提供65535个可用计数) + + + + + 后缀计数的最大值 + + + + + 获取一个时间戳标记名称 + + + + + 统一时间戳 + + + + + 标记点序列暂存 + + + + + 获取一个时间戳 + + + + + 获取规定格式的时间戳名称 + + + + + + + + 获取一系列以当前时间戳为标记的名称,名称后缀递增(有限长度,自动释放) + + + + + + + 获取一系列以当前时间戳为标记的名称,名称后缀递增(无限获取,手动释放) + + + + + + + 获取当前时间戳位标记的名称,名称后缀自动递增(全自动) + + + + + + 数据来源接口,用于http get post等请求数据 + + + + + 请求类型 + + + + + 数据更新模式 + + + + + 数据更新间隔 + + + + + 修改更新模式 + + + + + + + 正常数据返回时委托,通过代码添加事件时使用 + + + + + 报错时委托,通过代码添加事件时使用 + + + + + 正常图片返回时委托,通过代码添加事件时使用 + + + + + 执行一次获取逻辑 + + + + + 执行循环获取逻辑 + + + + + 停止获取逻辑 + + + + + 表单参数 + + + + + 请求头参数 + + + + + 数据更新方法 + + + + + HTTP请求类型 + + + + + 数据更新间隔 + + + + + 上传数据 + + + + + 获取当前api的属性下被rename标记的字段 + + 返回这个字段的值,标记特性,原名称 + + + + 将api当作键值对列表 + + + + + + 判断一个api中是否至少包含一个成员 + + + + + + 将api转为表体 + + + + + + 将api转为表头 + + + + + + 数据源扩展 + + + + + 界面可视化属性标记 + + + + + 创建一个界面属性标记 + + 友好名称 + 层级结构 + 预制排序 + 重写类型 + + + + + 目标类型 + + + + + 处理给定类中的标记成员 + + + + + + 获取标记属性 + + + + + + + + 获取标记名称 + + + + + + + + 所属成员/所属容器 + + + + + 具体容器内成员 + + + + + 获取名称中指代的成员 + + + + + + + + 获取值 + + + + + + + 设置值 + + + + + + + 当且仅当两个操作数都为真时,结果才为真。 + + + + + 当至少一个操作数为真时,结果为真。 + + + + + 对操作数取反,即真变假,假变真。 + + + + + 当且仅当两个操作数不相同时,结果为真。 + + + + + 与运算的否定,即当且仅当两个操作数都为真时,结果为假。 + + + + + 或运算的否定,即当至少一个操作数为真时,结果为假。 + + + + + 异或运算的否定,即当且仅当两个操作数相同时,结果为真 + + + + + (蕴含 A -> B)如果 A 为真,则 B 也必须为真;如果 A 为假,则 B 可以为真或假。 + + + + + (等价)当且仅当两个操作数相同时,结果为真。 + + + + + 线性颜色 + + + + + 默认颜色 + + + + + 颜色序列,必须从小到大排列 + + + + + 颜色值访问 + + + + + + + 颜色键值对 + + + + + 横坐标 + + + + + 横坐标对应的颜色 + + + + + 创建一个在横坐标上的颜色属性 + + + + + + + 获取给定索引下的颜色 + + + + + + + + 获取颜色 + + + + + + + 添加一个颜色(如果给定位置处已经有颜色,则不做任何事) + + + + + + + 设置一个颜色(如果给定位置为空,将添加颜色,如果已经有颜色,则覆盖) + + + + + + + 移除一个颜色 + + + + + + 清空颜色 + + + + + 将给定的颜色复制到自己 + + + + + + 预制函数动态退化树 + + + + + 预制函数跳线 + + 通过跳线执行到函数,并匹配方法形参。 + + + + + + 检查方法匹配 + + 方法返回值类型匹配 + 方法描述 + 方法参数 + + + + + 检查方法匹配 + + 方法返回值类型匹配 + 方法描述 + 方法参数 + + + + + 检查方法匹配 (不匹配返回值类型) + + 方法描述 + 方法参数 + + + + + 检查方法匹配 + + 方法返回值类型匹配 + 方法描述 + 方法参数类型 + + + + 检查方法匹配 + + 方法返回值类型匹配 + 方法描述 + 方法参数类型 + + + + 检查方法匹配 + + 方法返回值类型匹配 + 方法描述 + 方法参数类型 + + + + 类型 + + + + + 实例 + + + + + 方法名称 + + + + + 所有方法 + + + + + 创建一个实例方法的描述 + + + + + + + + 创建一个静态方法的描述 + + + + + + + + 通过类型,实例,名称描述方法 + + 类型,如果目标是实例,可以为空 + 实例,如果目标是静态,可以为空 + 方法名称定位 + + + + 根据现有的参数查找方法 + + + + + + 调用方法,如果方法无法调用,则返回否来提示错误。 + + + + + + + + + 调用方法,如果方法无法调用,则返回否来提示错误。 + + + + + + + + + 预制参数跳线 + + + + + 参数类型 + + + + + 参数实例化对象(参数通过反射访问时的容器) + + + + + 参数内容 + + + + + 参数设置器 + + + + + 参数访问器 + + + + + 目录树型管理结构 + + + + + 路径分隔符号 + + + + + 当前节点的名称,通常是路径名称 + + + + + 值是无效的 + + + + + 当前值 + + + + + 父级节点 + + + + + 子项目 + + + + + 如果这个节点是自动生成的,那么可能没有给定值,所以项目为null,但实际上如果获取的话值为defualt。 + + + + + 创建一个目录树节点 + + + + + + 创建一个目录树节点,并指定节点无效,这通常用于自动创建 + + + + + + 添加子目录节点 + + + + + + 根据路径添加新的节点 + + 相对路径 + + + + + + 获取当前节点的根节点 + + + + + + 获取路径下的遍历结构 + + 默认遍历成员从第一个非目录控制字符开始,。 + + + ../表示上一级,./表示同级,ROOT/表示顶级,其他片段表示以当前节点往下进行查找(或创建) + 允许在遍历时遇到不存在的节点时创建,否则会产生报错 + 启用调试成员,将输出所有控制字符在遍历的成员 + 允许调试语句,将不再检查语句语法,可以完全使用路径语句进行流程遍历控制,而不会产生报错 + + + + 字典树节点类 + + + + + 父节点 + + + + + 字符 + + + + + 子节点集合:Key是字符,Value是对应的子节点 + + + + + 标记当前节点是否为某个单词的结尾 + + + + + 将一个单词从此插入 + + + + + + 获取当前节点对应的单词 + + + + + + 搜索所有末端 + + + + + + 字典树(Trie)核心类 + + + + + 插入一个单词到字典树 + + + + + 搜索一个完整单词是否存在于字典树 + + + + + 检查是否存在以指定前缀开头的单词 + + + + + 获取当前单词在字典中的所有补全项目 + + + + + + + 查找字符串对应的节点 + + + + + + + 全匿名成员 + + + + + 所有成员和方法 + + + + + 匿名字段 + + + + + 匿名方法 + + + + + 匿名对象 + + + + + 名称 + + + + + 值 + + + + + 父级 + + + + + 引导接口(在必要时进行优先唤醒) + + + + + 是否已经经过唤醒,应该在脚本的Awake阶段赋予true。 + + + + + 先导事件(如果MONO不允许启动Awake,先导事件仍会触发) + + + + + 严格模式脚本 + + + + + 嵌套MONO + + + + + 嵌套层 + + + + + 嵌套层 + + + + + 单例基础类,只能基于MonoBehaviour类进行单例扩展 + + + + + + 空诞生时根节点名称 + + + + + 获取组件单例 + + + + + 获取复数组件数量 + + + + + 获取复数组件迭代 + + + + + 所有没有指定的目标的单例脚本组件的挂载节点 + + + + + 基本单例组件中默认保留旧的成员,如果需要移除旧成员,请在base调用前调用DestroyInstanc() + + + + + + 实例在场景中无中生有时通过此过程进行初始化 + + + + + 单例 + + + + + + 是Unity对象 + + + + + 获取为unity mono脚本单例 + + + + + + 静态函数句柄 + + 隔离函数引用,使用软引用连接这一切 + + + + + + 句柄名称 + + + + + 目标类的类型 + + + + + 目标类的函数信息 + + + + + 调用这个静态方法 + + + + + 嵌入式批处理机制 + + 在其他管理器中可以通过此嵌入式机制进行快速的批处理流程控制。 + 顺便可以利用其中的列表进行元素控制。 + + 批处理管理器中提供了数个生命周期,按需调用即可。 + + 在异步更新事件中,提供了异步前后的数值安全同步生命周期, + 随后才会在异步操作中执行线程不安全的计算操作 + + + 虽然这里没有限制,但一般来说目标都是MonoBehaviour + + + + 用于线程遍历操作的列表 + + + + + 等待添加到列表中的队列 + + + + + 等待从列表移除的队列 + + + + + 清除标记 + + + + + 生命周期标志清除 + + + + + 声明周期标志添加 + + + + + + 主要的异步执行任务控制 + + + + + 创建一个批处理管理器 + + 同一时间批处理器使用的线程,数量越多处理的流程不确定性越大,反之约稳定,直至变为线性流程 + + + + 添加一个成员到列表中,这不会立刻执行 + + + + + + 从列表中移除一个成员,这不会立刻执行 + + + + + + 清空所有,这不会立刻执行,请关注清除事件的执行 + + + + + 检查一个成员是否在内 (这是不安全的哦) + + + + + + + 批量物理更新 + + + + + 批量主要更新 + + + + + 批量后置更新 + + + + + 批量异步更新(必须在主线程调用) + + 启用前置任务 + 启用后置任务 + + + + + 嵌入式批处理委托 + + + + + 此嵌入式处理对象的标识符 + + + + + 在关机流程中 + + + + + 目标的批处理管理器 + + + + + 此处理对象的物理更新 + + + + + 集中的物理更新事件 + + + + + + 此处理对象的主要更新 + + + + + 集中的主要更新事件 + + + + + + 此处理对象的延后更新 + + + + + 集中的后置更新事件 + + + + + + 此处理对象的额外异步之前更新 + + + + + 异步更新开始事件 + + + + + + 此处理对象的额外异步更新 + + + + + 集中的异步更新事件 + + + + + + 此处理对象的额外异步之后更新 + + + + + 异步更新结束事件 + + + + + + 此处理对象添加到异步处理流程的操作 + + + + + 当成员被添加到处理列表中时,这发生在所有更新事件之前,且只执行一次 + + + + + + 此处理对象添加到异步处理流程的操作 + + + + + 当成员从处理列表中被移除时,这发生在所有更新事件之前,添加操作之后,且只执行一次 + + + + + + 创建一个嵌入式批处理委托集合 + + 目标值,做索引 + 前置更新 + 主要更新 + 后置更新 + 异步更新 + 特异性更新 + 特异性异步更新 + + + + 停止批处理,推荐这样使用 + + 如果已经添加到停止队列中了,返回否,表示等待异步周期响应,暂时不允许重复操作 + + + + 实现此接口表示对象可以被异步批处理 + + + + + + 代理更新 + + 这是主线程方法,可以在此进行主要的数据交换操作 + + + + + + 代理更新 + + 这是主线程方法,可以在此进行主要的数据交换操作 + + + + + + 代理后置更新 + + 这是主线程方法,可以在此进行主要的数据交换操作 + + + + + + 代理异步更新之前 + + 这是主线程操作 + + + + + + 代理异步更新 + + 这是异步操作 + + + + + + 代理异步更新之后 + + 这是主线程操作 + + + + + + 当启用代理异步更新时 + + + + + 当从异步代理中退出时 + + + + + 获取批处理器 + + 注意获取批处理器应当在实现类中进行保存,以便后续获取同一个批处理器。 + + + + + + + 一维布尔 + + + + + 三维布尔 + + + + + 获取当前选择布尔轴选择的矢量轴的尺寸(顺序是XYZ) + + + 如果没有任何选择返回0 + + + + 设置当前选择布尔轴的矢量轴的尺寸(顺序是XYZ) + + + + + + + 获取当前选择布尔轴选择的旋转轴的角度(顺序是XYZ) + + + + + + + 设置当前选择布尔轴的旋转轴的尺寸(顺序是XYZ) + + + + + + + 设置当前选择布尔轴的旋转轴的尺寸(顺序是XYZ) + + + + + + + 三维线段,默认以点A为中心,通过调整距离,方向可以间接设定点B; + 包含一系列于两点线段的参数,并通过脏文件管理,可以减少重复获取时的冗余计算 + + + + + 端点A(起点) + + + + + 端点B(终点) + + + + + 线段长度,是点A到点B的笛卡尔坐标直线距离 + + + + + 线段矢量,由A指向B + + + + + 线段单位方向,是规格化的矢量 + + + + + 创建一个三维线段,并指定两个端点 + + + + + + + 创建一个三维线段,但使用射线的方式初始化 + + + + + + + + 当设定了端点时,所有相关参数将不再有效 + + + + + 反转线段两个端点,也就相当于反转了矢量等参数 + + + + + 获取空间中任意一点到此线段的垂线点(不包含延长线) + + + + + + + 所有处理脚本的流程列表 + + + + + 注册添加或移除处理器项目 + + + + + 每帧允许指定的流程数量 + + + + + 在更新时需要被移除的对象 + + + + + 上一次处理到的索引 + + + + + 带有归属类的事件 + + + + + 事件 + + + + + 目标归属脚本 + + + + + 建立一个归属类 + + + + + + + 添加匿名处理器,需要由此处理器担保对象的生命周期大于等于处理器。 + + + + + + 添加处理器 + + + + + + + 移除匿名处理器 + + + + + + 移除处理器 + + + + + + 移除处理器 + + + + + + 缓动模式 + + + + + 三维方向指示 + + + + + 二维方向指示 + + + + + 带有权重的梯度,要求其中的元素实现lerp; + lerp不属于接口,所以需要后续手动定义。 + + + + + 梯度列表,默认其中的元素都是从小到大的,且数量不小于1 + + + + + 获取在给定的值上的取值 + + + + + + + 获取两个节点的梯度混合 + + + + + + + + 获取给定坐标的位置所处的索引 + + + + + + + 获取一个可以随权重变化的调整率 + + + + + + + + + 获取平滑步骤 + + + + + + + + 获取范围 + + + + + + 梯度列表上的单点 + + + + + + 横轴坐标 + + + + + 纵轴取值 + + + + + 权重(上一个的权重与下一个的权重) + + + + + 与上一个的权重 + + + + + 与下一个项目的权重 + + + + + 创建一个梯度结构点 + + + + 最小只能表示0 + 最小只能表示0 + + + + 获取当前元素与相邻元素的有效权重; + 这里的有效权重是指对于双方来说,各自从0-1的权重。 + + 下一个梯度元素 + 下一个梯度元素的权重 + 当前梯度元素的权重 + + + + 浮点梯度权重 + + + + + 矢量梯度权重 + + + + + 矢量梯度权重 + + + + + 矢量梯度权重 + + + + + 颜色梯度权重 + + + + + 旋转梯度权重 + + + + + 希腊字母名称对 + + + + + 获取希腊字母 + + + + + + 获取希腊字母全拼 + + + + + + 获取希腊字母读音 + + + + + + 一个简单的四叉树 + + 由于四叉树的特性,重新生成可能会比转置并平衡四叉树要简单和方便的多。 + 所以,如果需要维护四叉树,建议直接丢弃旧树重新生成 + + + + + + 插入元素 + + + + + + + + 寻找范围内的元素 + + + + + + + 四叉树节点 + + + + + 节点范围 + + + + + 节点内对象,为空代表此节点不包含成员 + + + + + 构造节点 + + 节点范围 + 节点层级 + + + + 元素插入 + + + + + + + + 执行细分,这会直接创建所有的子节点 + + + + + 查找给定范围象限 + + + + + + + 找回 + + + + + + + 四叉树识别接口 + + + + + 提供给四叉树容器可识别的范围 + + + + + + 单例基础类,允许通过继承或直接注册的方式获取一个类的单例系统 + + 如果给定的类通过继承的方式获得单例行为时,允许获取此单例类中的全部操作实现。 + 如果给定类通过类型限定语句注册到全局时,将不允许获取此单例中的操作实现。 + + 如果期望直接获得一个空的节点,可以使用transform作为泛型,毕竟所有节点都有这个组件。 + + + + + + + 空诞生时根节点名称 + + + + + 组件单例 + + + + + 额外代理的单例 + + + + + 额外代理的单例 + + + + + 组件自身单例(如果目标源并非自身,则可以使用自身引用获取) + + + + + 具体的运行时定义实例 + + + + + 由于untiy对带泛型类的反射序列化支持较弱,所以这里提供用于在运行时查找所有全局对象的类 + + + + + 已经唤醒 + + + + + 父级线程锁 + + + + + 自身线程锁 + + + + + 获取对象实例名称 + + + + + + + 当前全局单例承载节点,如果不存在此节点,优先创建在当前世界 + + + + + 世界全局单例承载节点,如果不存在此节点,优先创建在不销毁世界 + + + + /// + 代理单例对象(世界父级优先) + + 交叉同源对象,将另一个目标作为首选项覆盖原生,这在原型并非泛型限定时很有用。 + + 注意: + 不允许:多线同步,异步执行,隐式声明,远程单例 + 允许:自身排斥,非运行时 + + + + + /// + 代理单例对象(世界不销毁父级优先) + + 交叉同源对象,将另一个目标作为首选项覆盖原生,这在原型并非泛型限定时很有用。 + + 注意: + 不允许:多线同步,异步执行,隐式声明,远程单例 + 允许:自身排斥,非运行时 + + + + + + 获取组件最近单例 + + inst要求返回的对象必须为声明的泛型 (如果泛型类并非自己时无法获取自己的内容)。 + 如果目标已实现,但不存在于世界中时,将自动在当前场景中创建一个空节点用于存放对象。 + + 注意: + 不允许:自身排斥,多线同步,异步执行,远程单例,非运行时 + 允许:隐式声明 + + + + + + 获取一个在全局的静态单例成员 + + GlobalInstance不作来自继承的限制,允许与原型无关的泛型。 + 如果目标已实现,但不存在于世界中时,将自动在全局创建一个空节点用于存放自己。 + 如果泛型并非自己时,虽然可以定义,但无法在此处获取自己的内容,可以使用配合InstanceSelf使用。 + + 注意: + 不允许:自身排斥,多线同步,非运行时 + 允许:异步执行,隐式声明,远程单例 + + + + + + 惰性单例(优先惰性单例) + + 如果单例未声名,尝试查找,否则返回空 + + 注意: + 不允许:隐式声明,远程单例,自身排斥 + 允许:多线同步,异步执行,非运行时 + + + + + + 惰性单例(优先普通单例) + + 如果单例未声名,尝试查找,否则返回空 + + 注意: + 不允许:隐式声明,远程单例,自身排斥 + 允许:多线同步,异步执行,非运行时 + + + + + + 获取此静态单例成员的绝对自身 + + 功能与 GlobalInstance 一致,但: + 如果泛型并非自己时,虽然可以定义,但无法在此处获取泛型的内容。 + + 注意: + 不允许:自身排斥,多线同步,非运行时 + 允许:异步执行,隐式声明,远程单例 + + + + + + 获取此静态单例成员的绝对自身 + + 功能与 GlobalInstance 一致,但: + 如果泛型并非自己时,虽然可以定义,但无法在此处获取泛型的内容。 + + 注意: + 不允许:自身排斥,多线同步,非运行时 + 允许:异步执行,隐式声明,远程单例 + + + + + + 获取此静态单例成员的绝对自身 + + 功能与 GlobalInstance 一致,但: + 如果泛型并非自己时,虽然可以定义,但无法在此处获取泛型的内容。 + + 注意: + 不允许:自身排斥,多线同步,非运行时 + 允许:异步执行,隐式声明,远程单例 + + + + + + 获取此静态单例成员的绝对自身 + + 功能与 GlobalInstance 一致,但: + 如果泛型并非自己时,虽然可以定义,但无法在此处获取泛型的内容。 + + 注意: + 不允许:自身排斥,多线同步,非运行时 + 允许:异步执行,隐式声明,远程单例 + + + + + + 编辑时单例 + + 如果世界中存在实现,那么以世界为准。 + 不建议依赖编辑时单例在状态与状态之间传递数据。 + 此单例对象不稳定且易变 + 如果现在不是编辑器模式,则与Instance一致 + 注意: + 不允许:多线同步,异步执行,远程单例,自身排斥 + 允许:隐式声明,非运行时 + + + + + + 匿名单例 + + 如果不需要匿名单例,就不要调用,它会保持为空,避免占用资源。 + 匿名单例将成员映射为键值对,它保留了字段和方法可供执行(其他都不在映射范围内); + 方法需要通过单例限定名访问 ExecuteAnonymousInstanceMethod 方法进行调用 + 匿名单例需要手动维护,你可以调用 SyncCopyMainToAnonymous 或 SyncCopyAnonymousToMain 来在两个方向上同步。 + 匿名单例可以在单例被释放后仍然保存数据。 + + 注意: + 不允许:隐式声明,远程单例,非运行时 + 允许:多线同步,异步执行,自身排斥 + + + + + + 直接获取为自身终端类 + + + + + + + + 获取全局父级(如果父级不存在,则优先创建全局不销毁父级) + + + + + + 获取全局父级(如果父级不存在,则优先创建在当前世界中) + + + + + + 在给定成员上获取或创建组件 + + + + + + + 检查泛型是否为当前类派生,也就是说这个是单例系统吗,还是旁例 + + + + + + 基本单例组件中默认保留旧的成员,如果需要移除旧成员,请在base调用前调用DestroyInstanc() + + + + + + 初始化 + + + + + 移除此处的单例实例 + + + + + 手动指派一个实例到此 + + + 如果实例不为空,或实例重复指派,则指派失败,返回否 + + + + 拦截一个单例内的方法 + + + + + + 取消对一个单例内方法的拦截 + + + + + + 开始对一个属性进行钩子监听 + + + + + + + 取消对一个属性进行钩子监听 + + + + + + + 带有历史记录的脚本 + + + + + 获取历史坐标 + + + + + 获取历史旋转 + + + + + 获取历史缩放 + + + + + 初始世界坐标 + + + + + 初始世界旋转 + + + + + 上一帧世界坐标 + + + + + 上一帧世界旋转 + + + + + 初始坐标 + + + + + 初始旋转 + + + + + 初始缩放 + + + + + 上一帧坐标 + + + + + 上一帧旋转 + + + + + 上一帧缩放 + + + + + 使能更新历史变换 + + + + + 弱类型脚本 + + + + + 检查两者是否同时为null,以及是否可以继续检查 + + + + + + + + + 获取实例哈希id + + + + + + + 检查对象有效性 + + + + + + 允许获取一个同类元素的迭代器,这也是弱类型的一部分 + + + + + + 此处的矩形变换组件 + + + + + 定义如何获取弱矩形变换组件,用于重载所有弱变换组件检查 + + + + + + 定义如何获取弱变换组件,用于重载所有弱变换组件检查 + + + + + + 定义如何获取此弱游戏对象, 用于重载所有弱游戏对象检查 + + + + + + 定义如何获取此弱索引,用于重载所有弱索引检查的索引获取 + + + + + + 定义如何获取此弱名称,用于重载所有弱名称检查的目标 + + + + + + 定义此弱三维坐标,用于重载所有弱检查 + + + + + + 定义此弱三维旋转,用于重载所有弱检查 + + + + + + 定义此弱三维缩放,用于重载所有弱检查 + + + + + + 定义此弱界面三维坐标,用于重载所有弱检查 + + + + + + 定义此弱界面坐标,用于重载所有弱检查 + + + + + + 如果目标为空 + + + + + + 如果不为空 + + + + + + + 如果目标为空 + + + + + + 如果不为空 + + + + + + + 弱类型基础 + + + + + 上次操作时的时间标记 + + + + + 上次操作时的时间标记 + + + + + 同一时间中诞生计数, 使用ulong只是为了不转换,但实际上范围只在short以内,超出了其实也没事,就是有可能发生索引重复 + + + + + 序列后缀 + + + + + 序列哈希 + + + + + 后缀索引 + + + + + 后缀名称 + + + + + 实例编号 + + + + + 注意不要在类字段中直接初始化,会导致种子时间不变 + + + + + 组件统计管理 + + + + + 横向排版占比(COLUMN) + + + + + 纵向排版占比(ROW) + + + + + 所有子项 + + + + + 当前所处的位置在ui上 + + + + + 整段定义 + + + + + 总占比 + + + + + 烘焙数据过程 + + + + + 单个布局属性占比 + + + + + 抬头名称 + + + + + + 烘焙单位占比 + + + + + 每个单元 + + + + + 目标 + + + + + 计算两个方向上的占比 + + + + + + 执行一次排版布局 + + 要执行排版的引用 + + + + 基本的图形矩形后处理 + + + + + 样条曲线接口 + + + + + 获取给定索引点的坐标 + + + + + + 设置给定索引点的坐标 + + + + + + + 获取线上t的坐标 + + + + + + 曲线点烘焙数据 + + + + + 累计的总长度 + + + + + 累计的循环总长度 + + + + + 在烘焙过程中执行距离累计 + + + + + 烘焙平均距离 + + + + + 烘焙循环平均距离 + + + + + 累计的总长度 + + + + + 累计的总长度 + + + + + 烘焙平均距离 + + + + + 烘焙循环平均距离 + + + + + 点坐标 + + + + + 到下一点的距离 + + + + + 直到当前点的距离 + + + + + 在总长度的占比 + + + + + 比较两个参数内当前点的距离 + + + + + 将一个点添加到烘焙列表中 + + + + + + 开始累计距离 + + + + + 结束距离累计 + + + + + 计算所有剩余迭代数据 + + + + + 协程方式计算迭代 + + + + + + 重映射驱动值,以距离为主要判断依据重新计算驱动值。 + 可以获得在曲线上任意两个相同时间内距离相等的驱动值。 + 相当于反畸变矫正了 + + 取值范围在[0,1] + + + + + 获取线路全长距离 + + + + + + + ui曲线路径脚本,在canvas上绘制曲线 + + + + + 调试线占比 + + + + + 调试线单位占比长度 + + + + + 调试控制点尺寸 + + + + + 烘焙数据 + + + + + 曲线长度 + + + + + 烘焙采样点 + + 通过设定采样精度来提前烘焙曲线,数量越大,最终的重映设精度越高; + 每次重映设的速度大约是 ln(采样点数量) + 下面是一些预设值对应的查找复杂度 + 100:4.6 + 1000:6.9 + 10000:9.21 + 在烘焙前需要确保曲线可以正确计算世界空间的位置(需要确保在这之前调用过UpdateRectDepend) + + 如果发现计算的距离为零,可能是比如awake,start阶段太靠前了,此时屏幕缩放可能还处于0,导致距离也为零。 + 一般这个屏幕空间曲线所在的canvus也是世界空间的,不受屏幕缩放影响最好(比如固定的独立摄像机渲染)。 + + + 烘焙采样点,数量最好超过曲线点数量 + + + + 烘焙采样点 + + 通过设定采样精度来提前烘焙曲线,数量越大,最终的重映设精度越高; + 每次重映设的速度大约是 ln(采样点数量) + 下面是一些预设值对应的查找复杂度 + 100:4.6 + 1000:6.9 + 10000:9.21 + 在烘焙前需要确保曲线可以正确计算世界空间的位置(需要确保在这之前调用过UpdateRectDepend) + + + 烘焙采样点,数量最好超过曲线点数量 + + + + 重映设时间 + + 曲线时间取值[0,1] + 将值重新映射为任意两个相邻步距相等的新时间 + + + + + + + + + 刷新矩形空间参数依赖,如果窗口更改了缩放,应该调用并刷新其中的参数 + + + + + 获取曲线在屏幕上的坐标 + + 曲线坐标受当前挂载变换组件的影响 + + + + + + + + 获取曲线在屏幕上的旋转 + + + + + + + 获取曲线上数值过度 + + + + + + + 获取给定索引的点在屏幕上的旋转 + + + + + + + 获取给定索引的点在屏幕上的旋转 + + + + + + + 获取起点手柄的坐标 + + + + + + + 设置起点手柄的坐标 + + + + + + + 获取终点手柄的坐标 + + + + + + + 设置终点手柄的坐标 + + + + + + + 转换点到屏幕空间 + + + + + + + 将屏幕空间点计算为锚点 + + + + + + + 将本地旋转转为世界 + + + + + + + 将世界旋转转为本地 + + + + + + + 曲线路径脚本,可以在世界中绘制曲线 + + + + + 曲线功能 + + + + + 样条线使用的坐标空间 + + + + + 调试线占比 + + + + + 调试线单位占比长度 + + + + + 调试控制点尺寸 + + + + + 烘焙数据 + + + + + 曲线长度 + + + + + 烘焙采样点 + + 通过设定采样精度来提前烘焙曲线,数量越大,最终的重映设精度越高; + 每次重映设的速度大约是 ln(采样点数量) + 下面是一些预设值对应的查找复杂度 + 100:4.6 + 1000:6.9 + 10000:9.21 + 在烘焙前需要确保曲线可以正确计算世界空间的位置(需要确保在这之前调用过UpdateRectDepend) + + 如果发现计算的距离为零,可能是比如awake,start阶段太靠前了,此时屏幕缩放可能还处于0,导致距离也为零。 + 一般这个屏幕空间曲线所在的canvus也是世界空间的,不受屏幕缩放影响最好(比如固定的独立摄像机渲染)。 + + + 烘焙采样点,数量最好超过曲线点数量 + + + + 烘焙采样点 + + 通过设定采样精度来提前烘焙曲线,数量越大,最终的重映设精度越高; + 每次重映设的速度大约是 ln(采样点数量) + 下面是一些预设值对应的查找复杂度 + 100:4.6 + 1000:6.9 + 10000:9.21 + 在烘焙前需要确保曲线可以正确计算世界空间的位置(需要确保在这之前调用过UpdateRectDepend) + + + 烘焙采样点,数量最好超过曲线点数量 + + + + 重映设时间 + + 曲线时间取值[0,1] + 将值重新映射为任意两个相邻步距相等的新时间 + + + + + + + + + 获取映射值对应曲线上的旋转 + + + 曲线上点在世界空间中的旋转 + + + + 将一个曲线的坐标值通过给定变换转换到世界 + + + + + + + 将一个曲线的坐标值通过给定变换转换到世界 + + + + + + + + 将一个曲线的旋转值通过给定变换转换到世界 + + + + + + + 找到最近点(快速二分法,要求曲线形状不能太复杂,否则很有可能陷入局部最优) + + + + + + 比较两个参数内当前点的距离 + + + + + 排挤网格 + + 在二维或三维空间的一个二维网格,允许通过ui投影等计算方式让一个对象占据一个晶格。 + 占据晶格的对象可以通过改变网格大小来调整其他所有对齐成员, + 或者在调整大小时占据其他网格,这时,原来在网格内的ui会被挤出这个空间,并以一个特定的规则移动到周围空闲区域中。 + + 可以自定义排挤移动规则,解放移动规则 + + + + + + 翻页选择器 + + 这是一个通过反射识别翻页选择器的脚本。 + 通过指定翻页对象路径和翻页成员路径来识别目标脚本的成员,通过各级的是否为列表来切换他们的选择方式。 + + + + + + 调试绘制类 + + + + + 设置颜色 + + + + + + 恢复颜色 + + + + + 绘制线条 + + + + + + + + 绘制线条阵列 + + 样本起点 + 样本终点 + 阵列方向 + 颜色 + 阵列距离 + 阵列数量 + + + + 绘制线条阵列 + + 样本起点 + 样本终点 + 阵列方向 + 阵列距离 + 阵列数量 + + + + 在两个方向上绘制线条阵列 + + 样本起点 + 样本终点 + 阵列方向1 + 阵列方向2 + 颜色 + 阵列距离1 + 阵列距离2 + 阵列数量1 + 阵列数量2 + + + + 在两个方向上绘制线条阵列 + + 样本起点 + 样本终点 + 阵列方向1 + 阵列方向2 + 阵列距离1 + 阵列距离2 + 阵列数量1 + 阵列数量2 + + + + 绘制立方盒体(注意:请不要用这个方法绘制网格,复杂度是12n^3) + + + + + + + + + + 绘制立方盒体(注意:请不要用这个方法绘制网格,复杂度是12n^3) + + + + + + + + + + 绘制立方盒体(注意:请不要用这个方法绘制网格,复杂度是12n^3) + + + + + + + + + 绘制立方盒体(注意:请不要用这个方法绘制网格,复杂度是12n^3) + + + + + + + + + 绘制立方盒体(注意:请不要用这个方法绘制网格,复杂度是12n^3) + + + + + + + 绘制3D网格 (适合绘制网格,相比使用立方体排布,复杂度是n^3) + + 网格中心原点 + 晶格尺寸 + 各轴数量 + 颜色 + + + + 绘制3D网格 (适合绘制网格,相比使用立方体排布,复杂度是n^3) + + 网格中心原点 + 晶格尺寸 + 各轴数量 + + + + 绘制2D平面 + + + + + + + + 绘制2D平面 + + + + + + + + 绘制2D平面 + + + + + + + 绘制2D向上网格 + + + + + + + + + 绘制2D向上圆形无边网格(基于世界原点,通过绝对网格偏移调整位置) + + + 绝对网格偏移 + 单元网格模数,也是单元网格大小 + + + 启用外接矩形线,将会以红色衔接原型外侧到线起点的这一段距离 + + + + 绘制2D向上圆形无边网格(基于世界原点,通过绝对网格偏移调整位置) + + + + + + + + + 绘制2D向上网格 + + + + + + + + 绘制2D向前网格 + + + + + + + + + 绘制2D向前网格 + + + + + + + + 绘制2D向左网格(因为只有向左看两个轴才与实际对齐) + + + + + + + + + 绘制2D向左网格(因为只有向左看两个轴才与实际对齐) + + + + + + + + 绘制球 + + + + + + + + + + 绘制球 + + + + + + + 绘制圆 + + + + + + + + 绘制圆 + + + + + + + + 绘制圆 + + + + + + + 绘制一个向下的箭头,箭头的原点是头部 + + + + + + + + + + 绘制一个向下的箭头,箭头的原点是头部 + + + + + + + + + 绘制一个空轴,沿六个方向发射长度为半径的线 + + + + + + + 绘制这个矩形的范围 + + + + + + 绘制这个矩形的范围 + + + + + + 绘制线 + + + + + + + + + 绘制线 + + + + + + + + + 绘制线 + + + + + + + + + 绘制线 + + + + + + + + + 生成器 + + + + + 复制一个组件到另一个组件中 + + 这个方法只能用于 MonoBehaviours 或普通 C# 类的字段和属性, + 不能用于 Unity 内置组件(例如 Transform、Rigidbody 等)的复制, + 因为这些组件的字段和属性通常是私有的。 + + + + + + + + + + 从给定的物体上克隆一个组件到新的物体上 + + 这个方法适用于所有类型的组件 + + + + + + + + + + 创建节点 + + + + + 使给定的游戏节点断子绝孙 + + + + + 使给定的游戏节点断子绝孙 + + + + + 提取所有组件,然后在同级中另起一个节点进行对指定组件结构的覆盖 + + + 要提取组件的节点 + 复制时另起节点的名称 + 最大检索深度 + + + + 生成节点纯方法 + + + + + 创建楼梯 + + + + + 平面挖孔碰撞 + + + + + 矩形包围与穿孔,用于制作简易的房间合体 + + + + + 生成楼梯简易碰撞; + 生成可循环的单段楼梯,比如固定步阶的楼梯 + + + + + 普通的A*寻路算法 + + + + + 开启列表,存储所有待检查的节点 + + + + + 关闭列表,存储已经检查过的节点 + + + + + 起点 + + + + + 终点 + + + + + 返回一个可以手动迭代的路径迭代器 + + 放回当前步骤正在执行的节点 + + + + 获取优先级最高的节点(代价最小的节点) + + 返回当前代价最小的节点 + 找到之后就删除这个节点 + + + + + 在已遍历列表中寻找节点 + + 节点 + 节点存在的索引 + 节点是否存在 + + + + 使用自定义函数 + + + + + 曼哈顿距离 + + + + + 对角距离 + + + + + 欧几里得距离 + + + + + A*寻路算法节点 + + + + 终点代价占比越小,遍历越多,a*越慢,但一定能找到最短路径。 + 终点代价为0,则完全由起点代价决定,a*将退化为Dijkstra算法。 + 终点代价占比越大,a*越快,但不能保证找到最短路径,此时变成了最佳优先搜索 + + + + 总代价 + + + + + 起点代价,从起点到当前节点的代价 + + + + + 终点代价,启发式预测从当前节点到目标点的代价。 + + + + + 如果来时的节点有效 + + + + + 来时的节点 + + + + + 此导航节点对应的目标,导航依靠此接口提供相邻节点 + (壹依似,物益似: + 意思是一个节点需要依靠着含义相近的数据来完成导航,物体对象充当的了这个数据,也将从中收益) + + + + + 此导航节点对应目标是否有效 + + + + + 设置分数 + + 起点代价 + 终点代价 + + + + 设置分数(从上一节点到此的累加) + + 来自节点 + 自上一节点到此的代价 + 终点代价 + + + + 设置分数 + + 来自节点 + 终点目标 + + + + 获取颠倒的节点列表(从终点到起点) + + + + + + 获取节点列表(从起点到终点) + + + + + + 获取距离代价 + + + + + + + 二维节点 + + + + + 位置 + + + + + 曼哈顿距离 + + 目标点 + 代价 + + + + + 对角距离 + + 目标点 + 代价 + 对角代价 + + + + + 欧几里得距离 + + 目标点 + 代价 + + + + + 判断节点的引用是否相等,如果只是为了检查节点位置是否一致,可以使用==符号 + + + + + + + 获取颠倒的节点列表(从终点到起点) + + + + + + 获取节点列表(从起点到终点) + + + + + + 三维节点 + + + + + 位置 + + + + + 曼哈顿距离 + + 目标点 + 代价 + + + + + 对角距离 + + 目标点 + 代价 + 对角代价 + + + + + 欧几里得距离 + + 目标点 + 代价 + + + + + 判断节点的引用是否相等,如果只是为了检查节点位置是否一致,可以使用==符号 + + + + + + + 获取颠倒的节点列表(从终点到起点) + + + + + + 获取节点列表(从起点到终点) + + + + + + 用于实现在节点之间进行a*寻路的接口 + + + + + 获取当前节点到其他节点计算的距离模式 + + + + + 相邻单位代价(默认:1) + + + + + 二维对角单位代价(默认: 1.414213) + + + + + 三维对角单位代价(默认:1.732051) + + + + + 获取当前节点在导航中的二维坐标(当使用二维导航器时), + 方法内不建议写复杂的过程 + + + + + + 获取当前节点在导航中的三维坐标(当使用三维导航器时), + 方法内不建议写复杂的过程 + + + + + + 获取当前节点可遍历的节点数量 + + + + + + 获取当前节点给定索引下的邻居节点 + + + + + + + 获取到另一个节点的距离,这将用于启发函数(代价) + + + + + + + 基本的保全调用方法; + 需要手动在委托的前后安置保全标识 + + + + + 外部保护标志位 + + + + + 外部单步标志位 + + + + + 标志一段程序的开始 + + + + + + + 标志一段程序的结束 + + + + + + + 尝试开始一段程序 + + + + + + + + 开始执行一次 + + + + + + + + 复位执行一次的标志 + + + + + + + 获取一段程序的标志位 + + + + + + + + 获取一段程序的标志位 + + + + + + + + 程序流程保全 + + + + + 可扩展事件 + + + + + 事件列表 + + + + + 事件扩展标识 + + + + + 事件 + + + + + 单步执行 + + + + + 调用保护 + + + + + 调用所有的已注册扩展事件,注意:这会比使用繁琐的外部方法更慢。 + + + + + 使用委托名称契约进行调用的保全, + 性能上应该比使用try catch更好。 + + + + + 设定偏移来自追踪目标 + + + + + 追踪目标 + + + + + 偏移量 + + + + + 初始化 + + + + + + 运行时刻检查 + + + + + 游戏启动后最先执行的函数 + + + + + 所有程序集加载完成后调用(用于编辑器环境) + + + + + 显示启动画面之前调用 + + + + + 加载第一个场景之前调用 + + + + + 场景加载完成后调用 + + + + + 线性处理流程 + + + + + 恢复待执行事件列表 + + + + + 设定是否循环处理所有协程 + + + + + 循环处理所有协程 + + + + + 最大执行计数 + + + + + 当前协程内执行流程计数 + + + + + 等待执行的协程 + + + + + 当前执行的协程 + + + + + 持久担保者 + + + + + 第一次执行 + + + + + 线性协程处理器,将一系列协程进行线性处理; + + 将添加协程的过程进行定义 + 协程处理的担保脚本 + 在定义完成后立即执行协程 + 设定协程循环执行,如果不循环则需要手动调用start方法 + + + + 添加待处理协程 + + + + + + 协程!启动! + + + + + 执行下一个协程 + + + + + 尝试增加协程执行计数,当计数超越预设范围后将提示停止协程 + + + + + 看向某物 + + + + + 看向目标的名称 + + + + + 看向的目标 + + + + + 设定看向的目标 + + + + + 反转看向轴 + + + + + 看向的轴 + + + + + 启用旋转的轴 + + + + + 基础旋转 + + + + + 旋转角速度 + + + + + 看向的目标有效 + + + + + 表示键和值的集合 + + + + + + + 检查是字符串类型 + + + + + + 内嵌日志 + + 允许在任何地方生成日志描述,并一口气输出。 + + + + + + 日志列表 + + + + + 日志计数器 + + + + + 索引日志 + + + + + + + 创建一个简易的日志管理器 + + + + + 添加一个消息 + + + + + + + 异步发送一条消息 + + + + + + 发送全部消息到untiy消息控制台 + + + + + + 异步发送全部消息到Unity消息控制台,这会隐去调用此方法的位置 + + + + + 消息管理器 + + 实现消息的记录以及自动发送,让发送者的调用栈隐藏 + + + + + + 实例 + + + + + 实例 + + + + + 日志 + + + + + 日志 + + + + + 自动发送收到的消息 + + + + + 内嵌日志结构 + + 允许在类甚至方法内生成详细的返回值,当此日志为错误时,代表否,否则为真 + + + + + + 创建一个日志 + + 日志内容 + 日志类型 + + + + 获取带前缀时间格式的消息 + + + + + + 将消息发送到unity + + + + + + 将一个错误消息在此处产生,可以欺骗调用栈。 + + + + + + 可以通过反射进行类查找的特性,支持通过标签进行查找 + + + + + 标记此处为允许全局反射查找的类 + + + + + 标记此处为允许全局反射查找的类,添加一个名称作为查找的标签(枚举类型标签也在查找的范围) + + + + + 标记此处为允许全局反射查找的类,添加一个枚举值作为查找时的标签(字符串类型标签也在查找的范围) + + + + + 获取给定程序集中所有带有特定标记的类 + + + + + + + + 获取给定程序集中所有被标记了可查找的类 + + + + + + + 获取给定程序集下所有带有特定标签的类 + + + + + + + + 获取给定程序集下所有可查找的类 + + + + + + + 获取这个对象的所有标签 + + + + + + + 获取这个类的斯普皮标签 + + + + + + + 获取标签下所有类 + + + + + + + 获取给定程序集下所有带有特定标签的类 + + + + + + + diff --git a/Third Party Notices.md.meta b/Runtime/hideSponsor.meta similarity index 57% rename from Third Party Notices.md.meta rename to Runtime/hideSponsor.meta index d0ccdd3..e1e832a 100644 --- a/Third Party Notices.md.meta +++ b/Runtime/hideSponsor.meta @@ -1,6 +1,7 @@ fileFormatVersion: 2 -guid: 63d179caae5c9e049a9a6ed376a54f9c -TextScriptImporter: +guid: b66080c7d48f7f342b79af0fdbedec87 +folderAsset: yes +DefaultImporter: externalObjects: {} userData: assetBundleName: diff --git a/Runtime/hideSponsor/Newtonsoft.Json.dll b/Runtime/hideSponsor/Newtonsoft.Json.dll new file mode 100644 index 0000000..be3857e Binary files /dev/null and b/Runtime/hideSponsor/Newtonsoft.Json.dll differ diff --git a/Runtime/hideSponsor/Newtonsoft.Json.dll.meta b/Runtime/hideSponsor/Newtonsoft.Json.dll.meta new file mode 100644 index 0000000..52388b3 --- /dev/null +++ b/Runtime/hideSponsor/Newtonsoft.Json.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: a579eb81b712d0945a92ed0b63bc4488 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Third Party Notices.md b/Third Party Notices.md deleted file mode 100644 index 92ea199..0000000 --- a/Third Party Notices.md +++ /dev/null @@ -1,16 +0,0 @@ -This package contains third-party software components governed by the license(s) indicated below: ---------- - -Component Name: [provide component name] - -License Type: [Provide license type, i.e. "MIT", "Apache 2.0"] - -[Provide License Details] - ---------- -Component Name: [provide component name] - -License Type: [Provide license type, i.e. "MIT", "Apache 2.0"] - -[Provide License Details] -