2.2Unity中的基本概念

上述介绍提到了几个概念:游戏对象、场景、资源、相机,这个小节我们来深入了解,同时进行一些实践性操作。不过首先,我们需要大概了解一下Unity的工程文件夹。

2.2.1工程文件夹

在Unity工程目录下的文件夹,大致整理如下:

文件夹名称

介绍

Assets

Assets文件夹是Unity中的工程资源文件夹,Unity编辑器寻找工程路径时的搜索目标。我们所有的资源都存在这个文件夹中,后续介绍的几个文件夹都由系统自动产生。

Library

Library文件夹是Unity编辑器运行时所依赖的资源文件夹,原先Assets中的文件资源并不是直接被使用,而是被经过平台处理(不同终端平台情况下,资源处理格式是不同的,比如Androiod和IOS的贴图压缩格式差别很大)后处理成相应的格式,并且暂存在这个文件夹中,以便于编辑器运行时调用。编辑器会自动对比、更新这个文件夹。如果被删除,编辑器会自动重新产生。注意不要把资源存放在这里。

ProjectSettings

ProjectSettings文件夹用作工程配置文件夹,所有对于工程的配置信息都存储在这里。比如:声音配置、编辑器平台编译配置、全局物理参数、画质配置、用户输入配置、网络配置等信息均存储在该目录下方相应的配置文件中。

obj

obj文件夹用于存放脚本代码的编译生成。同样,这个文件夹会自动产生,不需要手动修改,不能用作存储资源。

Temp

编辑器临时目录,启动编辑器后才会建立,关闭自动删除。

表1-2

2.2.2 Unity中的基本概念

如果把游戏中看作一部话剧,其中的各个部分均使用舞台来呈现的话,那么这每个部分就是一幕场景,在Unity中对应“Scene”这个单词,同时也存在这个类。每一幕的话剧

应该有当前所需要的各种道具,角色等等,而我们使用同样的场景(Scene)这个概念来组织这些内容。场景的存在,即为我们提供一个空间,让我们可以布置这些道具和角色

,当然这些道具和角色可以同时布置在多个场景中,而它们存储的实际位置并非一定是当前场景。

相应地,我们把一些Unity中的概念全部对应到这部话剧中,大致解释如下:

Unity概念

解释

Scene

场景

相当于一幕话剧,用于存储各种布置,存储后的资源文件以unity作为后缀名。代码中使用Scene类来表示。

Game Object

游戏对象

相当于话剧中的角色、道具、景物等等可视的物件。代码中使用GameObject类来表示。

Component

组件

相当于话剧中的角色、道具或者景物所具有的功能。比如人可以行走,球可以滚动,扬声器可以发出声音等等。

代码中使用Componenet类来表示,大部分情况下,我们自己编写的应类继承Component的子类MonoBehavior,而Unity大部分的内置组件不继承MonoBehavior,也就是说,MonoBehavior是为“Unity玩家”专属定制。

Prefab

预制件

预制件是针对自定义的一组游戏对象,进行预先配置,比如设置它们之间的相对位置,层级关系等等,然后将它们整体存储为一个模板。后续每次使用这个模板,都会构建出一份那组游戏对象的拷贝。

代码中对应GameObject类型,也就是说,本质上这个模板仍然是一个GameObject,只不过它有些特别,就是它是“只读”的,后续的章节我们会详细解释这部分内容。

Asset

资源

资源,Unity中有很多中资源,就连GameObject、Component理论上也都是资源,不过大部分情况下,我们说的资源指的是:网格、动画、贴图、材质、音频片段、字体等等。

资源类型比较多,对应的类也不相同:

网格:Mesh        文件格式:fbx、obj等

动画:Animation   文件格式:anim等

贴图:Texture     文件格式:psd、tif、png、jpeg等

材质:Material    文件格式:mat

音频:AudioClip   文件格式:ogg、wav、mp3等

字体:Font        文件格式:ttf、fnt等

所有的资源类均继承自UnityEngine命名空间下方的Object类,注意与CSharp默认空间中的Object不同。

上述Asset中的每种资源基本都有若干种文件格式,我们究竟应该用哪种格式是需要考虑的一个问题,不过它们被导入之后都是处理成相同或者类似的结构,我们不必太过担心。

最常用的格式基本我都把它们排在了前方。

Unity编程标准导引-2.2Unity中的基本概念的更多相关文章

  1. Unity编程标准导引-3.4 Unity中的对象池

    本文为博主原创文章,欢迎转载.请保留博主链接http://blog.csdn.net/andrewfan Unity编程标准导引-3.4 Unity中的对象池 本节通过一个简单的射击子弹的示例来介绍T ...

  2. Unity编程标准导引-Unity中的基本概念-2.1界面概览

    Unity中的基本概念 本文我们介绍Unity中的基本概念,包括:场景.游戏对象.组件.预制件.资源等. 2.1.界面概览 打开Unity之后,我们大概可以看到以上画面,以上画面中即显示了我们最常用到 ...

  3. Unity编程标准导引-3.1 Component 组件脚本及其基本生命周期

    本文为博主原创文章,欢迎转载,请保留出处:http://blog.csdn.net/andrewfan 3.1组件 Component 组件是Unity中最核心的一个概念,它是一切编程的基础.没有组件 ...

  4. Unity编程标准导引-1.2官方资源介绍

    1.2.官方资源介绍 Unity官方提供了丰富的学习和参考资源,有以下类别: Unity手册以及API文档 Unity的官方教程 AssetStore 1.2.1 Unity手册以及API文档 前述文 ...

  5. Unity编程标准导引-1.1下载和安装Unity

    本文为博主原创文章,欢迎转载,请保留出处:http://blog.csdn.net/andrewfan 1.1.下载和安装Unity 1.1.1 选取版本 首先找到Unity官方网站https://s ...

  6. Unity编程标准导引-3.3 Transform

    本文为博主原创文章,欢迎转载.请保留博主链接http://blog.csdn.net/andrewfan 每个游戏对象(GameObject),其存在于游戏世界,都有一个位置.朝向.大小等基本定位信息 ...

  7. Unity编程标准导引-3.2 MonoBehavior 组件父类重构

    本文为博主原创文章,欢迎转载.请保留博主链接:http://blog.csdn.net/andrewfan 3.2MonoBehavior 组件父类重构 为了让我们的组件类用起来更方便,我们将上一节的 ...

  8. 【Unity编程】Unity中关于四元数的API详解

    本文为博主原创文章,欢迎转载,请保留出处:http://blog.csdn.net/andrewfan Unity中关于四元数的API详解 Quaternion类 Quaternion(四元数)用于计 ...

  9. 【Unity编程】四元数(Quaternion)与欧拉角

    版权声明:本文为博主原创文章,欢迎转载.请保留博主链接:http://blog.csdn.net/andrewfan 欧拉旋转.四元数.矩阵旋转之间的差异 除了欧拉旋转以外,还有两种表示旋转的方式:矩 ...

随机推荐

  1. sharedPreferences存储数据

    sharedPreferences使用的是键值对的方式存储数据. 1.Android中三种获取sharedPreferences的方式 1)Context 类中的getSharedPreference ...

  2. getElementsByTagName("div")和$("div")区别

    作者:zccst <body> <div class="selected">1</div> <div class="select ...

  3. 一个苹果证书怎么多次使用——导出p12文件

    http://blog.csdn.net/jjiss318/article/details/41812243 原文:http://my.oschina.net/u/1245365/blog/19636 ...

  4. [转]解决Maven报错"Plugin execution not covered by lifecycle configuration"

    [转]解决Maven报错"Plugin execution not covered by lifecycle configuration" 导入Myabtis源码后,POM文件会报 ...

  5. winscp 秘钥登录

    如题 如果不想用密码登录,可以选择用秘钥文件登录winscp 原理和linux分发ssh公钥是一个道理 1:在被管理的机器上分发公钥 ,出现 authorized_keys才可以 完成服务端配置 2: ...

  6. mysql数据库中间件研究

    随着互联网的发展,数据量的不断增大. 单台实例已经远远无法满足业务的需要. 对数据库分库分表的需求不断的增加随之而来的就是数据库中间件的开发. 一. 单台实例主要面临下面几个问题: 1.  数据量太大 ...

  7. mongodb学习(二)分级查询数组中的值

    (PS: 标题有点不妥当...) 大概是这样...数据结构如下: 需要模糊查询title的值... mongodb中操作语句: 主要是注意这里urlElements不需要加[0]...我开始的时候写成 ...

  8. C++类的存储(部分可用与c的结构体)

    c++中最重要的就是类,那么给你一个类的对象,你知道它在内存中如何存储的吗?它占内存中多少个字节? 首先确定类的构成: 1,数据成员:可以是内置类型,类类型. 2,函数成员:虚函数,非虚函数 1)数据 ...

  9. 正确的 Composer 扩展包安装方法

    问题说明 我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的: composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害. 因为 com ...

  10. PHP做负载均衡回话保持问题参考

    最近一个项目的服务器老是出现Session数据丢失问题,导致用户莫名其妙的退出,原因是太相信我们的运维人员所谓的负载均衡会话保持的概念.会话保持 的原理就是负载均衡通过Cookie来分发那个客户连接被 ...