游戏开发者必须了解的unity3D技巧

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

最新文章