更新 TextBlockBuilder
+10
-7
@@ -193,9 +193,16 @@ public class MyBlock : TextBlockBuilder // 继承自TextBlockBuilder
|
||||
``` scharp
|
||||
_blockBuilder = Pure(Color(Color.white, Label("重量")), Value(1.23), Size(20, Label("kg"))).BuildBlockByAgentOnce();
|
||||
_blockBuilder.ToString(); // 结果:<color=white>重量</color>1.23<size=20>kg</size>
|
||||
|
||||
// 函数式最后的`BuildBlockByAgentOnce`作用是返回这个工具集的包裹器,并将构建框架放回池中释放。
|
||||
// 也可以使用`BuildBlockByAgent`获取,但它会返回一个object类型的TextBlockBuilder对象,但是会保留框架,也就是你可以重复使用这个框架去生成blockBuilder。
|
||||
// 除非你已经完全了解如何利用框架生成,否则无论如何,都建议使用`BuildBlockByAgentOnce`来构建。
|
||||
```
|
||||
|
||||
相比之下非常简短,对吧,不过这段代码前提是需要引用一些命名空间:
|
||||
> 在框架上使用构建方法返回的文本包裹器,在内容上与直接使用new block的做法生成的内容几乎一致。
|
||||
> 但框架格式在细节处理上相比直接使用文本包裹器相比,可能会产生更多的嵌套块用于处理特殊语法,通常这不会影响最终的使用。
|
||||
|
||||
实际相比之下将无用的语法全部化简了,对吧,不过这段代码前提是需要引用一些命名空间:
|
||||
``` scharp
|
||||
using static XericLibrary.Runtime.MacroLibrary.MacroMath;
|
||||
using static XericLibrary.Runtime.MacroLibrary.MacroMath.AlignBlock.Align;
|
||||
@@ -204,12 +211,8 @@ using static XericLibrary.Runtime.Type.SpatialAlgorithm.BlockUtilKit;
|
||||
using Color = UnityEngine.Color;
|
||||
```
|
||||
|
||||
> 示例中的函数式最后的`BuildBlockByAgentOnce`作用是返回这个工具集的包裹器,并将构建框架放回池中释放。
|
||||
> 也可以使用`BuildBlockByAgent`获取,但它会返回一个object类型的TextBlockBuilder对象,但是会保留框架,也就是你可以重复使用这个框架去生成blockBuilder。
|
||||
> 除非你已经完全了解如何使用框架,否则无论如何,都建议使用`BuildBlockByAgentOnce`来构建,
|
||||
|
||||
> 在框架上使用构建方法返回的文本包裹器,在内容上与直接使用new block的做法生成的内容几乎一致。
|
||||
> 但框架格式在细节处理上相比直接使用文本包裹器相比,可能会产生更多的嵌套块用于处理特殊语法,通常这不会影响最终的使用。
|
||||
> 话说如果新开一个脚本编写,因为这些函数不是扩展函数,找不到工具集类的话就根本找不到方法。
|
||||
> 这是个硬伤,相比之下 textBlockBuild 则可以通过自动补全找出来,但如果你不知道工具集这个玩意的话,可能光看 textBlockBuild 的代码也没想到还有这么个玩意。
|
||||
|
||||
### 嵌套框架语法 NestBlocker
|
||||
|
||||
|
||||
Reference in New Issue
Block a user