版权声明:本文为博主原创文章,转载请注明出处。

  游戏和电影一样,是通过每一个镜头的串联来实现的,而这样的镜头我们称之为“场景”。一个游戏一般包含一个到多个场景,这些场景里面实现了不同的功能,把它们组合起来就变成一个完整的游戏了。 
  在电影里面,每个镜头会包含布景,然后还会有演员在表演,摄像机将表演的画面记录下来,然后就变成了电影。同样的,在Unity游戏里面也同样存在相机,它的作用也是将游戏的画面展示在游戏设备的显示屏上面。所不同的是,Unity游戏里面,不论是布景还是人物,所有的东西我们都称之为“GameObject”游戏对象(2D游戏一般称之为“精灵”)。所以游戏场景是由游戏对象组成的,一个场景就相当于是一个独立的世界,我们可以简单的把游戏场景理解成是游戏对象的一个容器。

  Unity的Hierarchy面板上显示的就是场景当前拥有的游戏对象,当游戏处于运行状态,Hierarchy面板上面的对象也会跟着游戏在实时地刷新。一个新建的游戏场景里面会默认添加一个Main Camera(主相机)对象和一个Directional Light(方向光源)对象。主相机负责将游戏场景投影到屏幕,方向光源负责照亮整个场景。当我们将方向光源从场景里面删除后,由于场景里面没有光源,游戏运行后屏幕上只能看到一个很暗的画面。而如果我们将主相机对象从场景里面移除的话,游戏运行时我们将无法看到任何游戏画面。 
  在电影里面,角色会有各种信息,比如角色的身份标签、性格,甚至他的职能。同样的,我们的游戏对象也同样可以拥有各种信息,而这些信息都是以“组件”(Component)的方式存在的。游戏对象是由一个到多个组件组成的,我们可以将组件看成是组成一台机器的零部件。Unity游戏是通过组件的方式进行开发的,所以想要操作游戏对象也都是通过操作对应的组件对象。

  在Hierarchy面板上面或者Scene视图中随便选择一个游戏对象,然后我们就可以在Inspector面板上面看到对应的组件信息。一般,游戏物体都至少会拥有一个名为“Transform”的组件。它是游戏物体的基本组件,里面包含游戏物体在场景中的基本属性信息。 
  Transform有三个重要的属性组成,分别是:“position”、“rotation”和“scale”。 
  position包含的是游戏对象在场景中的位置信息,其数据类型是“Vector3”(三维向量),由x、y和z三个坐标分量组成。 
  rotation表示的是游戏物体在场景中的旋转角度信息,其数据类型是“Quaternion”(四元数),Quaternion.Euler(x, y, z)方法可以将x、y和z三个轴上面的旋转角度分量转换成一个欧拉角(Euler),并返回一个Quaternion对象。所以我们可以看到Transform的Rotation属性同样包含x、y和z三个值。 
  scale表示的是游戏物体在场景里面的缩放比例,默认为1。同样,它也分x、y和z三个分量,所以它的值同样是使用Vector3类型来表示。

  当我们需要给游戏物体添加新的组件的时候,我们可以简单的点击Inspector面板最后一个组件下方的“Add Component”按钮来添加。在按钮下面会出现一个组件选择面板,该面板顶部会有一个搜索框,可以直接输入组件名称进行检索。下面的备选列表里面列举了Unity内置的组件,我们也可以通过它们的分类来查找想要的组件。 
  以下是组件的分类: 
  (1)、Mesh:网格组件。 
  (2)、Effects:效果组件。 
  (3)、Physics:物理组件。 
  (4)、Physics 2D:2D物理组件。 
  (5)、Navigation:导航组件。 
  (6)、Audio:音频组件。 
  (7)、Rendering:渲染组件。 
  (8)、Layout:布局组件。 
  (9)、Miscellaneous:其它组件。 
  (10)、Event:事件组件。 
  (11)、UI:UI元素组件。 
  (12)、Scripts:已创建的脚本组件。 
  (13)、New Script:新建一个脚本组件。 
  每个分类下面基本都包含了多个组件。

【Unity入门】场景、游戏物体和组件的概念的更多相关文章

  1. Unity3D学习笔记(一):Unity简介、游戏物体、组件和生命周期函数

    Project(工程.项目):工程是把游戏开发当前所需要的资源归类管理用的. Console控制台:日志.报错.调试,右上角,消息过滤 Assets:资源,存储游戏中一切用到的资源 Library:临 ...

  2. 【Unity入门】碰撞检测与触发检测

    版权声明:本文为博主原创文章,转载请注明出处. 在Unity里面,游戏物体的碰撞我们可以通过刚体组件(Rigidbody)和碰撞器组件(Collider)来进行检测.首先在场景里面添加一个Plane面 ...

  3. 【Unity入门】场景编辑与场景漫游快捷键

    版权声明:本文为博主原创文章,转载请注明出处. 打开Unity主窗口,选择顶部菜单栏的“GameObject”->“3D Object”->“Plane”在游戏场景里面添加一个面板对象.然 ...

  4. unity入门—五分钟制作一个理论上的游戏

    unity入门 前言:这可不是标题党,虽然都是基础的操作,不过含括了基本的流程,比起脑海中的五花八门的画面,入门还是这个现实一点. 这里插两句,unity国外官网下载会推荐你看一个简短的视频,国内官网 ...

  5. Unity 游戏对象的组件列表

    描述: 1 个游戏对象,上面有 4 个组件, 如图: 脚本 Test_01 的内容,如下: using System.Collections; using System.Collections.Gen ...

  6. unity编辑器扩展_04(使用Selection获取选择的游戏物体)

    代码: [MenuItem("Tools/GetChance", false, 1)]    static void GetChance()    {        if (Sel ...

  7. Unity入门

    Unity入门 用unity做一个最简单的交互.(相当于Hello World)仅仅要最后能执行就算入门了. 第一步,要先用三维制作软件制作出我们须要的场景. 这儿使用的是Max2012(软件大小3. ...

  8. Unity入门一,什么是GameObject,MonoBehaviour

    Unity入门一,什么是GameObject,MonoBehaviour GameObject和Component Unity是一个Component-Based的引擎,所有物体都是GameObjec ...

  9. Unity入门教程(下)

    一.概要 在 Unity入门教程(上) 中我们创建了一个游戏项目,并且创建了玩家角色和小球这些游戏对象,还通过添加游戏脚本实现了小方块的弹跳.虽然功能比较简单,但是完整地表现了使用Unity开发游戏的 ...

随机推荐

  1. 《Java编程那点事儿》读书笔记(三)——static,this,抽象类,接口和包

    1. static 1)静态变量:Java虚拟机为静态变量开辟单独的存储空间,所以所有的对象内部的静态变量在内存中都指向同一个地址,那么不管哪个对象改变这个成员变量,所有对象中该成员变量的值都发生变化 ...

  2. 《Linux/Unix系统编程手册》读书笔记7 (/proc文件的简介和运用)

    <Linux/Unix系统编程手册>读书笔记 目录 第11章 这章主要讲了关于Linux和UNIX的系统资源的限制. 关于限制都存在一个最小值,这些最小值为<limits.h> ...

  3. Java日志框架 (commons-logging,log4j,slf4j,logback)

    转自:http://blog.csdn.net/kobejayandy/article/details/17335407 如果对于commons-loging.log4j.slf4j.LogBack等 ...

  4. mvp(1)简介及它与mvc区别

    注意:它们是软件架构,不是设计模式 左边mvc    右边mvp MVC和MVP的区别? MVP 是从经典的MVC架构演变而来,它们的基本思想有相通的地方:Controller/Presenter负责 ...

  5. PHP 时间函数 date 参数详解

    time();表示的是从1970-01-01到现在共走了多少秒,不便于看,但便于计算 要找出前一天的时间就是 time()-60*60*24; 要找出前一年的时间就是 time()*60*60*24* ...

  6. JSON 之 SuperObject(5): Format 与转义字符

    unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

  7. JQuery_给元素添加或删除类等以及CSS()方法

    一.addClass() - 向被选元素添加一个或多个类 <script src="jquery-1.11.1.min.js"></script> < ...

  8. LA 4794 Sharing Chocolate

    大白书中的题感觉一般都比较难,能理解书上代码就已经很不错了 按照经验,一般数据较小的题目,都有可能是用状态压缩来解决的 题意:问一个面积为x×y的巧克力,能否切若干刀,将其切成n块面积为A1,A2,, ...

  9. HDU 2610 (自己完全找不到思路) Sequence one

    搜索虐我千百遍,我待搜索...好吧,我还木有初恋 题意: 我开始理解题意就理解偏了,Orz 题中有n个元素构成的序列,求出前p个非递减子序列.子序列是先按长度排序的,然后按原序列先后位置排序的. 这里 ...

  10. Python GUI库

    PyQT不错的,只是要小心,这个东西是GPL的,如果你要写商业程序需要购买商业版授权.另外PyGTK.wxPython都是不错的GUI库.Python自带了一个基于TkInter的GUI库,如果你不想 ...