Unity技能编辑器(1)

本文介绍了如何在Unity中创建自定义EditorWindow,将编辑器代码放入指定文件夹,并通过OnGUI方法实现编辑器功能展示,包括菜单栏显示和分组编辑。后期可扩展至利用JSON进行数据存储和读取。

技能编辑器需要继承EditorWinder进行编辑,所以我们需要再我们创建的项目中首先创建一个Editor编辑器文件夹,并将需要执行的编辑器代码放进去便可

下一步便是进行代码编写了

这一步实现的是将编辑器文件显示在菜单栏

 

实现的效果就是这样的 ,下一步我们将对立面进行分行选择编辑,这个时候我们就需要使用编辑器中OnGUI这个方法进行编辑器功能展示

这里是一些少量的编辑器分组,我们也可以自行进行扩展,最后实现的效果便是这样的

后期,我们也可以加入json进行存储和使用,本期就先了解一下编辑器的布局和一些常见的使用 

 

 

 

Unity技能编辑器相关的部分信息可以从给定引用中获取。 ### 数据存储相关类 在Unity技能编辑器里,可利用特定类把技能编辑器上的数据存入Json。示例代码定义了枚举类型`SkillTypeEnum`和`MoveTypeEnum`,以及结构体`V3`与类`SkillData`。`SkillTypeEnum`包含指向技能、范围技能、自动技能和被动技能;`MoveTypeEnum`包含直线和弧线;`V3`用来表示三维坐标;`SkillData`类涵盖技能的各类属性,像技能ID、名称、图标地址、技能类型等,代码如下: ```csharp using System.Collections; using System.Collections.Generic; using UnityEngine; public enum SkillTypeEnum { 指向技能, 范围技能, 自动技能, 被动技能 } public enum MoveTypeEnum { 直线, 弧线 } public struct V3 { public float x; public float y; public float z; public V3(float x, float y, float z) { this.x = x; this.y = y; this.z = z; } } public class SkillData { public int skillId; //id public string skillNice; //名称 public string skillIconPath;//图标地址 public SkillTypeEnum skillType;//类型 public float beginAnimTime;//开始播放动画时间 public string skillAnimPath; //动画地址 public float beginEffectTime;//开始创建效果时间 public string skillEffectPath;//效果地址 public V3 beginEffectPos;//创建效果位置 public float effectDuration;//效果持续时间 public MoveTypeEnum effectMoveType;//效果移动类型 public int effectNum;//效果数量 public float effectCD;//效果间隔时间 public string endEffectPath;//结束效果地址 public float castingDistance;//施法距离 public float skillCD;//技能释放间隔时间 } ``` ### 技能池系统 Unity技能编辑器还涉及性能核心的技能池系统。示例代码中的`SkillPool`类实现了技能池的基本功能,借助`GetVFX`方法获取特效实例,利用`ReturnVFX`方法将特效实例返回池中,代码如下: ```csharp // 技能池系统 public class SkillPool : MonoBehaviour { private Dictionary<string, Queue<GameObject>> _pools = new(); public GameObject GetVFX(string vfxId) { if (!_pools.ContainsKey(vfxId)) CreatePool(vfxId); if (_pools[vfxId].Count > 0) return _pools[vfxId].Dequeue(); return CreateNewInstance(vfxId); } public void ReturnVFX(string vfxId, GameObject instance) { instance.SetActive(false); _pools[vfxId].Enqueue(instance); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值