UnityOnValidate使用

#unity/日常积累 OnValidate方法是一个仅限编辑器的函数,在Unity加载脚本或检查器中的值更改时调用。它的调用时机非常特殊,这里总结一下。 1. OnValidate不受播放模式影响,只要其值发生变化,在非播放状态下也会被调用(可以用于非播放模式修改参数后更新)。 2. 不受e……

协奏

手动采样动画SampleAnimation

#unity/日常积累 有时我们可能需要在编辑器中实现自己的动画播放预览,能够拖动播放,或者我们需要根据动画生成一些数据,比如生成GPU Skinning数据,这时我们就需要在非运行时播放动画。 实现该功能,我们只需要拿到AnimationClip对象,调用其SampleAnimati……

协奏

技能编辑器_第五章

这个区域的拖曳逻辑,注册 检测拖曳的物体,是否为动画片段 松开鼠标的时候,判断,如果是动画片段,而且非空,就开始检测下一步,看轨道上,是否有空余位置,存放该动画片段; 放置完成后,也是自动保存,技能配置文件,同时也会调用函数,创建一个新的动画Item 当前,初始化动画轨道,只有这一个 编辑……

协奏

特效音效编辑器_第一章

销毁和删除逻辑 技能轨道基类,有包含删除逻辑的虚函数 也就是在对应的动画数据集合,删除即可 对应属性面板的,删除逻辑 技能基类,还有一个销毁函数,分别是动画、音效、特效轨道类,都有重写的 其中,样式基类中,也新增了,对应的销毁函数,从对应的,显示要素根节点,和父节点 技能编辑器面板,有一个轨……

协奏

技能编辑器_第一章

技能编辑器,UI界面,是基于UI ToolKit搭建的,入口在这里 在Project面板,点这里,是可以创建,对应的窗体 写进去之后,就会自动创建3个文件 这仨就是这样创建出来的,分别是逻辑脚本,uss布局,还有点击uxml,就会直接跳转,打开UIBuilder界面 是放到Editor目录……

协奏

技能编辑器_第三章

当前帧索引,对比最大帧总数,运算更新; 也会更新时间轴表现逻辑,和驱动技能播放,后续会解析提及 控制台,是左边这个位置: 当前帧,总帧,都是这个部件,可输入文本 简单设置一下ui宽度,高度自适应 左右帧按钮,播放按钮,当前帧数,总帧数,具体逻辑和注册: 切换帧的时候,就是修改,当前帧索引; 设……

协奏

技能编辑器_第二章

而技能配置文件,相关逻辑,就更加简单了 对技能配置进行赋值,刷新轨道和帧总数,是后面的逻辑 根据逻辑,为空的时候,帧上限是100 有了配置之后,就根据配置的来了,这里是130: 是一致的: 查看基本信息: 逻辑就是选中,对应的技能配置文件 技能配置文件的,逻辑入口 继承自框架内,配置基类: 结构上……

协奏

技能编辑器_第四章

还有一个动画片段,也是一个子物体 父物体是一个label文本,然后子物体,是两个显示要素VisualElement 动画片段的抽象父类,设置根节点,背景颜色,宽度,位置 其中,背景颜色,就是有选中,和消选,两个调用 表现: 动画片段,对应的具体逻辑: 加载对应的uxml配置,,设置一下主拖曳……

协奏

第三人称角色控制_第三章

有限状态机,目前有俩状态 状态基类; 初始化的时候,是传参赋值,状态机控制器 有一个,玩家状态基类: 玩家状态也有俩子类 状态也是对象池,统一管理 父类的,进入,退出,更新,仨虚函数 其中,退出的函数重写,只有移动的状态类,因为前面,它注册了走路声,相关的动画事件函数,退出的时候,需要移除一下……

协奏

第三人称角色控制_第二章

进入正式游戏的控制脚本 两个布尔,都是true 删掉旧存档,创建一个新的 初始化玩家数据,具体实现; 这里也用到了,前面序列化相关的逻辑 完成初始化之后,会把数据存起来 把玩家数据,用二进制的方式,存到本地文件,作为存档 如果本地文件不存在,就创建即可 然后,初始化数据 加载玩家 移动速度等相关数据……

协奏