UnityEditor
Unity固定路径
例子/多目录合并
Plugins:需要跨语言调用的代码逻辑代码存储目录,如手机SDK接入;
Resources:存储跟随游戏包的资源目录;
StreamingAssets:只读,存储跟随游戏包的资源目录,安卓端单独存在;
Editor: 编辑器目录,编辑器相关的逻辑和资源会放在其中
相关内容在打包生成时不会一起生成到项目中
玩家也不会使用到编辑器相关的内容
其目录下的脚本,无法挂载到场景物体下。
Unity支持多目录合并(工程文件夹-不同子文件夹中有多个名叫Resources的文件夹,在编译时会合并成一个文件夹,但相同名字的文件会被覆盖)
命名空间相关
Unity编辑器命名空间:Unity.Editor,此命名空间不要出现在游戏被发布的逻辑代码中,会导致打包失败,因为打包时,会自动剔除这个命名空间,从而导致打包失败。
检视器相关
特性:HideInInspector

特性:SerializeField

特性:Serializable
写类A在类B里面,但类A无法显示在Inspector面板

但倘若我们给类A前面加上[Serializable],那么他就可以显示


特性:Space(),Header(),Tooltip(),Range(int,int)


特性:Multiline()


但这玩意有问题,就是无法快速定位,只能一行一行地去找:

因此,使用特性:TextArea()


枚举:



特性:ContextMenu()-----(会出现在右上角三个点的菜单)


特性:ContextMenuItem()


特性:RequireComponent(typeof())

特性:ExecuteInEditMode


特性:AddComponentMenu(,)


编辑器开发脚本

Editor生命周期:

步骤4:需要在当前的外挂脚本中,获得需要被扩展的组件对象

Tips:target是Object类型对象,是在选中面板中某一带有绑定组件的对象时,不为null;
OnInspectorGUI()函数:内嵌函数,写上去之后Inspector面板就只有该函数内的内容。



类:

枚举:

对每一种数据都有效的方法,这里举例:




警告框:



按钮:



按钮点击:


弹窗:

也有一样的生命周期:(DoTween)





点击出方块的功能










浙公网安备 33010602011771号