1. 3D模型基础

3D模型基础

  • 层级(Hierarchy)视图

1.如何快速找到一个特定的游戏对象(聚焦选择的方法)?
层级视图中双击游戏对象,或者F键
2.空游戏对象有什么作用?
作为父对象,即一个容器,便于对多个游戏对象控制管理;
作为专门挂载脚本的容器使用
作为容器,添加各种组件,形成心得功能的游戏对象

  • 项目(Project)视图

1.项目(Project)视图与层级(Hierarchy)视图的区别?
项目:存储整个工程(整个游戏)所需要用到的资源
层级:存放与编辑 当前场景中的资源
2.选择依赖项(select dependencies)的作用?
提取出游戏项目中的特定资源并永久保存
可以把某项目的资源导出,然后倒入的自己的项目

  • 场景(Scene)视图

1.几种绘制模式设置的特点和作用
贴图模式Textured:默认的
线框模式Wireframe:看到由线框组成的世界,便于了解游戏对象的复杂度,线框的多少会制约游戏运行的流畅度
渲染路径模式Render Paths:
光照贴图分辨率模式Lightmap Resolution:
2.几种渲染模式设置的特点和作用

  • RGB模式:默认的
  • Alpha模式:透明度灰度值数
  • Overdraw模式:
  • Mipmaps模式:

3.Effects的作用?
开启关闭场景中的特效
4.Gizmos小物件设置
拖动3D Icons,放大缩小场景中光源你和音频等显示图标
Show Grid设置是否显示场景背景的网格线
5.世界坐标系和局部坐标系的区别
世界坐标系:场景视图右上方的坐标系
局部坐标系:点击游戏对象以后,游戏对象的坐标系(将游戏对象旋转以后,切换Global和Local,可以观察到区别)还可以通过脚本来观察

void Update () {
        // 移动脚本,学习世界坐标系与局部坐标系
        if (Input.GetKey(KeyCode.W))
        {
            // 局部坐标系
            //this.transform.Translate(new Vector3(0F, 0F, 1F), Space.Self);
            //this.transform.Translate(new Vector3(0F, 0F, 1F));// 不写Space参数则默认为局部坐标系

            // 世界坐标系
            this.transform.Translate(new Vector3(0F, 0F, 1F), Space.World);

            // 简化写法
            //this.transform.Translate(Vector3.forward, Space.World);
        }
        else if (Input.GetKey(KeyCode.S))
        {
            // 局部坐标系
            //this.transform.Translate(new Vector3(0f, 0f, -1f), Space.Self);
            //this.transform.Translate(new Vector3(0f, 0f, -1f));
            // 世界坐标系
            this.transform.Translate(new Vector3(0f, 0f, -1f), Space.World);
            // 简化写法
            //this.transform.Translate(Vector3.back, Space.World);
        }
    }

6.左手坐标系
左手握拳,拇指朝上为up,朝下为down,其余四指弯曲的方向就是旋转方向

// 左手坐标系
    if(Input.GetMouseButton(0)) // 传入0表示按下鼠标左键
    {
        Debug.Log("顺时针旋转");
        this.transform.Rotate(Vector3.up, Space.World);
    }else if (Input.GetMouseButton(1)) // 传入1表示按下鼠标右键
    {
        Debug.Log("逆时针旋转");
        this.transform.Rotate(Vector3.down, Space.World);
    }

7.环绕旋转的函数使用方式,各个参数的含义

this.transform.RotateAround(v1, v2, angle)
// 元素围绕着v1点,采用v2向量,旋转angle角度

public Transform TraTarget;// 环绕旋转的目标对象
    // Update is called once per frame
    void Update () {
        this.transform.RotateAround(TraTarget.position, Vector3.up, 1f);
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容