unity编辑器开发笔记

这篇博客主要介绍了Unity编辑器的扩展技巧,包括版本管理的重点文件夹、界面操作如切换对象轴点和调整游戏视图分辨率,以及编辑器的各个窗口扩展方法。在Project窗口中可以监听资源事件,Hierarchy窗口可以添加创建菜单和对象控制,Inspector窗口能扩展组件,Scene窗口利用Gizmos绘制辅助图形和UI,Game窗口则可以通过[ExecuteInEditMode]进行扩展。此外,还讲解了如何使用EditorWindow绘制自定义窗口和预览窗口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版本管理

需要版本管理的文件夹只有Assets、ProjectSettings和UnityPackageManager。

unity界面

切换pivot和center选项,可以在选中的一组对象(或有父子关系的对象)间切换轴点是自身还是中心。global和local可以切换对象的坐标系,方便移动。

修改game视图的分辨率,可以查看ui在不同分辨率中的表现。

编辑器扩展

Project窗口右键菜单

using UnityEngine;
using UnityEditor;
public class AssetsEditor {
	// 顶部工具栏Assets和Project窗口中右键资源时会显示此菜单
	[MenuItem("Assets/My Tools/Tools 1", false, 1)]
	static void MyTools(){
		Debug.Log(Selection.activeObject.name);
	}
}

Create创建菜单

using UnityEngine;
using UnityEditor;
public class AssetsEditor {
	// Create创建菜单,通过菜单路径(“Assets/Create”)识别
	[MenuItem("Assets/Create/My Create/Cube", false, 2)]
	static void CreateCube(){
		GameObject.CreatePrimitive(PrimitiveType.Cube);
	}
}

Project窗口中选中资源,右侧显示按钮等UI元素

using UnityEngine;
using UnityEditor;
public class AssetsEditor {
	// Project窗口中选中资源,右侧会出现按钮
	// [InitializeOnLoadMethod] 表示此方法会在C#代码每次编译完成后调用
	[InitializeOnLoadMethod]
	static void InitializeOnLoadMethod(){
		// 监听此方法可以绘制GUI
		EditorApplication.projectWindowItemOnGUI = delegate(string guid, Rect selectionRect){
			// 在Project窗口中选中一个资源
			if(Selection.activeObject && 
			guid == AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(Selection.activeObject))){
				// 设置拓展按钮区域
				float width = 50f;
				selectionRect.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值