Unity学习-Unity工作原理以及预制体的使用

789 阅读3分钟

一.引言

有了Unity的使用基础,下面浅谈一下Unity的工作原理

二.Unity工作原理

Unity的工作原理,一句话说就是反射机制,比如我们给一个游戏物体添加一个脚本,Unity就会将其编译,通过反射读取到脚本类中的所有成员,并展示出来,举个例子,每个物体都会有Transform这个组件,这个是系统提供的一个类,那么我们改变它的值,其实就是通过SetValue(对象,值)的方式来改变的 下面一次解析Unity中的游戏物体以及相关概念:

  1. 游戏物体的地位
    从抽象的角度来说,它是GameObject的一个实例,是游戏场景的根本,而脚本对象是对应脚本类的一个实例,一个游戏物体会关联很多个脚本对象,从形象的角度来说,GameObject就是没有剧本的演员,而依附于它的所有组件脚本就是它的剧本,赋予它什么样的剧本(组件脚本),它就会出演什么样的角色(具有怎样的特征)
  2. Unity中反射机制的体现
    除了Transform这个表示位置的标配剧本外,我们可以为这个演员(GameObject)关联各种剧本(C#脚本),让它按照我们剧本中(代码逻辑中)的命令来处理事情,而为演员添加剧本的这个过程,就是在利用反射new一个新的剧本对象和演员(GameObject)对象进行关联,让其按我们的命令做事 image.png
  3. 对游戏场景的理解
    我们看到的游戏场景是3D立体的,但是它本质就只是一个后缀为.unity的文件而已,本质就是把场景对象相关信息读取出来,通过反射来创建各个对象关联各个脚本对象 image.png 可以通过文本的方式打开它,可以看到里面有GameObject的信息,下面会紧跟与之关联的组件脚本,在游戏场景加载时就会读取该文件,遇到一个GameObject字样就会通过反射的方式来创建一个游戏物体以及与之关联的组件脚本的对象,来决定整个场景的形态

三.预设(制)体的导入和导出

简单说一个预制体其实就是一个模型,方便我们在不同的场景中进行复用,有一劳永逸的意思,一个预制体是一个后缀为.prefab的配置文件,当我们将预制体拖入到场景中使用时就会读取该配置文件,和场景配置文件类似,反射实例化里面该有的对象

  1. 创建一个预制体
    创建比较简单,选中场景中我们已经搭建好的预制体模型,按住鼠标左键,拖入到右侧的Assets目录下即可,它会变成蓝色,标识它是一个预制体 预制体创建_.gif 图中是通过一个专门存放预制体的文件来保存预制体,只要是Assets目录即可
  2. 修改预制体相关操作 修改预制体操作_.gif 修改预制体,既可以选择场景中的预制体实例进行修改,也可以直接open预制体,进行修改,使用Unpack,可以让场景中的预制体实例与原本的预制体失去关联,那么它就仅仅是一个场景中的游戏物体了
  3. 资源包的导出
    导出资源包可以让预制体在不同的项目之间使用,提高复用性 导出资源包_.gif
  4. 导入资源包
    导入资源包_.gif 导入资源包时还可以直接将资源包拖入到Assets目录下

四.总结

本文浅析Unity的工作原理,顺带整理预制体的使用相关,增强模型的可移植性,关于Unity的原理,这里简单理解即可,后面会解析游戏物体常用的组件脚本,它们就是用于反射,而不可直接new一个实例