技能编辑器,UI界面,是基于UI ToolKit搭建的,入口在这里 ![[Pasted image 20240307105337.png]] 在Project面板,点这里,是可以创建,对应的窗体 ![[Pasted image 20240307112417.png]] 写进去之后,就会自动创建3个文件 ![[Pasted image 20240307112500.png]] 这仨就是这样创建出来的,分别是逻辑脚本,uss布局,还有点击uxml,就会直接跳转,打开UIBuilder界面 ![[Pasted image 20240307112518.png]] 是放到Editor目录下的,编译成游戏的时候,就会自动忽略这些 ![[Pasted image 20240307120327.png]] ![[Pasted image 20240307112559.png]] ![[Pasted image 20240307112732.png]] ![[Pasted image 20240307112748.png]] 简单介绍 ![[Pasted image 20240307113159.png]] 在构建界面,是可以直接拖曳,例如拖拽一个Button按钮,就可以拖到界面上 ![[Pasted image 20240307113401.png]] 这是逻辑脚本入口 ![[Pasted image 20240307113548.png]] uxml是记录布局参数结构 ![[Pasted image 20240307113624.png]] 对应界面右边的相关布局 ![[Pasted image 20240307113741.png]] IMGUIContainer定义: ![[Pasted image 20240307114718.png]] 在技能编辑器下,选择加载角色预制体,还有相关配置; 点击播放,就可以播放,当前编辑好的技能搭配 ![[Pasted image 20240307114917.png]] 界面,是有分几个区域的,逻辑上,也会分成几个region,比较有条理 ![[Pasted image 20240307115741.png]] ![[Pasted image 20240307115815.png]] 这里是编辑器总入口: ![[Pasted image 20240307115850.png]] ![[Pasted image 20240307115900.png]] 根节点: ![[Pasted image 20240307115937.png]] 加载对应的uxml布局配置,实例化,再加到根节点 ![[Pasted image 20240307120003.png]] 来到顶部逻辑,是通过ui命名,获取到对应组件的 ![[Pasted image 20240307120035.png]] 例如,这个是Button按钮 ![[Pasted image 20240307120104.png]] ![[Pasted image 20240307120129.png]] 在初始化,顶部逻辑的时候,就是通过nameof命名的方法,找到这个按钮,然后注册一个,点击的逻辑LoadEditorSceneButtonClick ![[Pasted image 20240307120142.png]] 这个逻辑,就是加载,对应的,技能编辑场景; 而且会把切换前的,当前场景路径,赋值给旧场景路径 ![[Pasted image 20240307120238.png]] ![[Pasted image 20240307120408.png]] 旧场景路径,用在这里的逻辑: ![[Pasted image 20240307120557.png]] ![[Pasted image 20240307120611.png]] 命名也是在这里写就好: ![[Pasted image 20240307120626.png]] 类似这种: ![[Pasted image 20240307120639.png]] 类型上,是这个组件: ![[Pasted image 20240307120708.png]] 可以在属性面板,对赋值类型,进行限制 ![[Pasted image 20240307120859.png]] 这里有两个,都是演示预制体的,后者会勾选,这指的是,允许选择,场景内加载的 ![[Pasted image 20240307120914.png]] 表现: ![[Pasted image 20240307121020.png]] 技能配置的选择: ![[Pasted image 20240307121126.png]] 只能选这个配置文件: ![[Pasted image 20240307121201.png]] ![[Pasted image 20240307121212.png]] 俩演示预制体,部件和预制体,分别也是有俩,一共4个: ![[Pasted image 20240307121657.png]] 在初始化的时候,判空和赋值 ![[Pasted image 20240307121720.png]] 注册和监听修改 ![[Pasted image 20240307121751.png]] 前者的逻辑:需要判断,是否在技能编辑场景; 判断是否相等,后面,就是销毁旧的,然后创建新的 ![[Pasted image 20240307121815.png]] 实例化新的时候,前者会给后者,赋值 ![[Pasted image 20240307121939.png]] 表现上,前者先选择 ![[Pasted image 20240307122057.png]] 选完,就实例化出来了 ![[Pasted image 20240307122127.png]] 后者再选的时候,默认就是这个,创建出来的,也就是上面的逻辑表现 ![[Pasted image 20240307122147.png]] 后者的逻辑相对简单,只是赋值处理: ![[Pasted image 20240307122231.png]]