1. U3D基础
界面
【File】文件、文件菜单
文件菜单:New Scene新建场景、New Project新建项目、Build Settings…发布设置
【Edit】编辑、编辑菜单
编辑菜单:Undo撤销、Redo重复、Cut剪切、Copy复制、Paste粘贴、Duplicate拷贝、Delete删除、Frame Selected将镜头移到选择物体前、Lock View to Selected 锁定视图选择、Preferences…首选参数设置、Modules…模板载入选择、Project Settings项目设置
PS:Project Settings内有输入键设置
【Assets】资源,资源菜单,资源文件夹,资源管理界面
资源菜单:Create创建物体、show in Explorer在资源管理器中查看、Import New Asset导入新的资源
资源文件夹:Audios音效、Material材质、Prefabs预制、Scenes场景、Scripts脚本、Sprites精灵
【GameObject】游戏对象、游戏对象菜单
游戏对象菜单:Create创建物体、show in Explorer在资源管理器中查看、Import New Asset导入新的资源
【Component】组件、组件菜单
组件菜单:Mesh网格、Effects效果、Physics物理、Phusics 2D二维物理、Navigation导航、Audio音频、Video视频、Rendering渲染、Tilemap地图、Layout布局、Playables人模、Miscellaneous杂项、Ui界面
【Window】窗口、窗口菜单
窗口菜单:Layouts布局、Scene场景、Game游戏、Inspector检视、Hierarchy层次、Project工程、Animation动画、Audio Mixer音效混合器、Animator动画控制器、Sprite Packer精灵打包器
【Help】帮助、帮助菜单
【Hierarchy】层级视图界面
2.U3D基本步骤:
- 开始界面/登录
- 创建新项目File/new project
- 创建新场景File/new scene
- 新建文件夹assets/scenes用来保存场景File/save scene
- 添加游戏对象 GameObject/Create(主要摄影机Main Camera,平行光Directional Light,游戏物体)
- U3D层次关系:Project项目 > Scene场景 > GameObject游戏物体 > Inspector组件
【Scene】场景设计界面
- 基本部件:摄像机位置、光照位置
- 视图类型:perso透视视野/近大远小 iso平行视野
操作快捷键:
- 鼠标移动(上下左右移动视角) 鼠标滑轮/alt(缩放视角) 鼠标左键双击/f(聚焦)
- 鼠标右键 (旋转视角) alt+鼠标左键(视角围绕物体旋转)
- 【Game】游戏运行界面
- 【Project】项目管理界面
- 【Console_1】控制台界面
- 【Inspector】检视属性界面
- 【Scene】场景设计界面
- 【Game】游戏运行界面
- 【Layout】布局设置
布局设置:2by3二横显示三竖资源、4Split四轴、Default默认、Tall竖着排、Wide横着排、Revert Factory Settings…恢复出厂设置
3. 使用RectTransform工具缩放3D物体
RectTransform工具一般用于缩放2D物体,对3D物体使用该工具可以在某个二维平面对其进行缩放,这取决于物体与视口的关系。
4. 吸附
按下Ctrl键对游戏对象进行移动、旋转、缩放,将以步进的形式进行操作,选择Editor > Snap Settings…命令,可设置步进大小。
5. 组件预设
当完成某个组件的属性设置后,可点击组件右上角的预设按钮,将当前属性设置保存为预设,方便后续进行组件设置时使用。
6. 保存选择状态
当选择了多个游戏对象后,可在 Edit > Selection 的子菜单中选择一个Save Selection项,暂存当前选择状态。选择Load Selection+对应的序号,即可恢复某个选择状态。此方法对跨节点选择多个对象的情况非常适用,这样将不必依次展开节点重新进行查找选择。
7. 通过脚本暂定编辑器播放
使用EditorApplication.isPaused可通过代码在编辑器播放时将其暂停,如下代码所示:
oid Update() { if (Time.time >= 10f) { EditorApplication.isPaused = true; } }
8. 查看游戏性能统计
点击Game窗口右上角的Stats按钮可以查看游戏性能统计数据,如帧率、批处理等指标。
查看更加详细的分析数据 :可使用Window > Analysis > Profiler工具;使用Profiler.BeginSample和Profiler.EndSample方法可在Profiler中查看函数的资源使用情况,如下代码所示:
Profiler.BeginSample("expensive"); CalculateSomething(); Profiler.EndSample();
需要引入UnityEngine.Profiling命名空间。
9. 缓存组件引用
当某组件需要被频繁访问时,可在初始化时预先获取该组件的引用,从而避免在访问时由于重复获取引起的性能开销。
private Rigidbody rb; void Start() { rb = GetComponent(); } void Update() { rb.AddForce(0f, -2f, 0f); }
同样的情况,也不要在使用Camera.main获取摄像机组件,尤其避免使用类似以下方法:
Camera cam = GameObject.FindGameObjectWithTag("MainCamera").GetComponent<Camera>();
这样会带来更大的性能消耗。
10. 自定义Inspector
对Inspector进行自定义,添加一些控件。如下代码所示:
using UnityEngine; using UnityEditor; [CustomEditor(typeof(Sphere))] public class SphereEditor : Editor { public override void OnInspectorGUI() { GUILayout.Label("自定义Inspector"); GUILayout.Button("确定"); } }
版权声明:本文为CSDN博主「肖尘」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_50642897/article/details/114270765