Unity 编辑器操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 编辑器操作相关的知识,希望对你有一定的参考价值。
参考技术A 参考
unity基础(1)——unity编辑器的基本介绍
Unity编辑器小提示和小技巧
unity编辑器十分好用的小技巧
Unity Tip小合集
有趣而又容易被忽略的Unity技巧
场景中如果有重叠的物体,标记禁选后,再去场景中拖动,就不会总是拖错目标了。
Scene视图的左上角把ShadingMode切换成Shaded Wireframe模式就能显示出模型的网格
有一些字段不想通过外部修改,因此声明为private,但是又有在运行时观察这些字段实时值的需求。这时我们就可以点击Inspector视窗右上角的下拉菜单,可以看到它和一般视窗的下拉菜单相比多了几个选项。
默认状况下,它处于Normal模式,我们这里就可以选择Debug模式了。这样,我们就可以既限制字段的访问权限又观察这些私有成员的变化了。
在某个数据上点击右键:
在Unity主界面中有三处是有搜索功能的,分别是:Hierarchy、Scene和Project。Hierarchy和Scene的搜索内容是一样的,都是对当前场景内的对象进行查找。Project是对整个Assets目录下的本地资源进行查找。有两种搜索模式可以使用:
有时我们需要将某个物体与另外一个物体对齐,特别是希望精确到顶点的形式对齐,通过输入坐标值的方式比较笨拙,我们可以用以下小技巧来快速进行对齐:
如果希望物体可以紧贴地面,但倾斜角度不好调整,这时可以在物体上添加Mesh Collider和Rigidbody组件,然后点击运行,借助Unity的物体引擎来计算位置。待物体坠落到地面后复制所有物体,停止运行后删除原先的物体再粘贴运行时复制的内容,并删除所有物体上的Mesh Collider和Rigidbody组件即可。
在安装位置找到Editor\\Data\\Resources\\ScriptTemplates,更改模板即可
https://docs.unity.cn/cn/2019.4/Manual/GridSnapping.html
Edit->Grid And Sanp Setting
按下快捷键 ctrl+[ 或ctrl+]调整格子大小,同时能看到Grid And Sanp中的Grid Size在变化。
按下CTRL再进行Move,Rotate,Scale操作时,就会按照设置的Step进行变化。
将游戏对象对齐到单个轴上的最近网格点。将Grid size改成0.1,然后选中场景中一个物体,点击Align Selection to Grid下面的X,Y,Z就能观察到坐标值稍微变化,并且与0.1的精度一致。
我们经常在运行时需要调一些参数,并且在退出运行后保留它们,这种需要怎么操作呢?
运行场景,并修改了参数。直接选中Prefab,在Inspector面板点击Apply即可
运行场景,并修改了参数。选中对象,在Inspector面板中,找到你需要保存的组件,点击设置按钮,从中选择Copy Component。退出运行后,再点击Paste Component Values来把刚才的值粘贴回来。
上面这种方式只能一次更改一个Component,如果希望保存整个对象的话,这时可以直接拖动对象到Assets目录下生成Prefab,退出运行后再逐个复制回来。
相信很多朋友都碰到过,Unity做着做着,正Happy的时候突然崩溃,特别是场景中有很多操作没有保存时,那内心是无比崩溃的!
当Unity崩溃时,切记千万先别重新启动Unity。(因为一旦重新启动将会清除上一次的缓存数据,也就没有办法再找到并恢复了!)
找到工程所在文件夹,定位到Temp/_Backupscenes/0.backup,将其中的0.backup复制出来放到Unity的Assets目录中,并且更名为xx.unity。(重点是改成.unity后缀,xx只是你希望的名称,可自由定义)
然后再重新启动Unity,打开刚才的xx.unity,你会发现在崩溃之前的操作都已被恢复回来啦。
Unity3D_Align With View 和Align View to Selected 相关用法
这个用法比较简单,就是把你选中的游戏对象移动到视图的中心点。
在Scene视图中,按住右键调整好。然后选中一个物体,执行Move To View,会发现它的坐标变化了,移动到视图的中心位置。
将选中的 gameObject与 Scene Camera的Transfrom重合。如果选中的是Camera,那么,此Camera正好显示 Scene面板中的画面。
选中普通的游戏对象:会移动游戏对象,直到游戏对象的中心点和视图的中心点对齐
选中Camera:会移动Camera,直到Camera的中心点和视图的中心点对齐,虽然和普通游戏对象结果一样,但是效果却不一样,它会让你在Game窗口看到的景象和在Scene窗口看到的景象一致( 比如可用于:你在Scene里调整一个视角,想在Game窗口看到效果,就可以选中Camera,然后点击Align With View,这样Game窗口显示的图像就和Scene一样了 )
将 Scene Camera与选中的 gameObject 的 Transfrom重合。如果选中的是 Camera,那么, Scene View正好显示此Camera中的画面。
很多时候我们在导出unitypackage时会连带导出非常多的资源,而且大部分实际上是并没有用到的,那么有没有更清爽干净的导出方法呢?当然有了,如下:
Unity 之 ExecuteAlways正在取代ExecuteInEditMode
Unity 基础 之 ExecuteAlways介绍
在Unity的编辑器中分为三种模式:
- 编辑器模式:打开任意工程,不做任何操作Unity就处于一个可编辑的状态,这就是编辑器模式;
- 运行模式:当我们点击Play(▶)运行一个场景时,这时Unity就处于运行模式;
- 预制体模式:当Unity进入Prefab时对应的编辑状态叫预制体模式;
ExecuteInEditMode
描述:使脚本的所有实例都在编辑模式下执行。
默认情况下,只在编辑器运行模式下执行 MonoBehaviours。通过添加此属性,MonoBehaviour 的任何实例都将在编辑器处于编辑模式时执行其回调函数。
此属性正在逐步被淘汰,因为它不考虑预制体模式。如果在预制件模式下编辑一个带有 MonoBehaviour 并启用了此属性的预制件,然后进入播放模式,则编辑器将退出预制件模式,以防止由仅用于播放模式的逻辑引起的预制件意外修改。
要指示 MonoBehaviour 正确考虑了预制件模式并且在播放模式期间以预制件模式打开是安全的,可以使用属性 ExecuteAlways 取代此属性。
下面几个函数和运行模式下调用情况不同:
- Update:只有当场景发生变化时才会调用。
- OnGUI:在“游戏视图”接收到非编辑器时调用。事件它不使用(例如,EventType.ScrollWheel)并且不转发到编辑器的键盘快捷方式系统(例如,EventType.KeyDown, EventType.KeyUp)。转发到游戏视图的事件将排队,不能保证立即处理。
- OnRenderObject:在场景视图或游戏视图的每一次重绘上都调用其他呈现回调函数。
ExecuteAlways
使脚本的实例始终执行,作为Play Mode的一部分和Editing。
默认情况下,MonoBehaviours仅在Play Mode下执行。
当希望脚本作为编辑器工作的一部分执行某些操作时,可以使用[ExecuteAlways]属性,该工具不一定与构建
仅在Scene发生改变是调用Update
当Game 试图接收到它不使用的非编辑器事件(例如,EventType.ScrollWheel)会调用OnGUI
在场景试图或者Game试图的每次重绘都会调用OnRenderObject和其他渲染回调函数
以上是关于Unity 编辑器操作的主要内容,如果未能解决你的问题,请参考以下文章
Unity HTFramework框架StepEditor步骤编辑器(下)