Unity引擎本质是一个软件使用它时是处于运行中的
我们是在一个运行中的软件里制作游戏的
Unity开发的本质就是在Unity引擎的基础上利用反射和引擎提供的各种功能进行的拓展开发
程序正在运行时,可以查看其它程序集或者自身的元数据
一个运行的程序查看本身或者其它程序的元数据的行为就叫做反射
在程序运行时,通过反射可以得到其它程序集或者自己程序集中代码的各种信息,比如类,函数,变量,对象等等
我们可以实例化它们,执行它们,操作它们
GameObject类对象是Unity引擎提供给我们的作为场景中所有对象的根本
在游戏场景中出现一个对象
不管是图片、模型、音效、摄像机等等都是依附于GameObject对象的
拟人化记忆: GameObject就是没有剧本的演员
GameObject对象作为一个出现在舞台(3D场景)中的演员必须有一个表示自己所在位置的信息
Transform就是一个必不可少的剧本
它的本质就是发了一本表示位置的剧本给演员
(相当于就是用一个Transform类对象和GameObject类对象进行关联)
用于设置和得到演员在世界中的位置角度缩放等信息
除了Transform这个表示位置的标配剧本外
我们可以为这个演员(GameObject)关联各种剧本(C#脚本)让它按照我们剧本中(代码逻辑中)的命令来处理事情
而为演员添加剧本的这个过程,就是在利用反射new一个新的剧本对象和演员(GameObject)对象进行关联,让其按我们的命令做事
前提: Unity帮助我们实现了对象查找和关联
1.修改Inspector面板中Transform的内容
利用反射:已知对象,类名,变量名,通过反射为该对象设置变量值
⒉.新建一个脚本后,添加给一个指定的GameObject对象
利用反射:已知类名,可以获取所有公共成员,故可以在Inspector面板上创建各公共字段信息
1.游戏场景的保存
2.游戏场景的新建
3.多个游戏场景叠加显示
4.游戏场景的本质
游戏场景的本质游戏场景文件后缀为.unity
它的本质就是一个配置文件
Unity有一套自己识别处理它的机制
但是本质就是把场景对象相关信息读取出来通过反射来创建各个对象关联各个脚本对象
Unity的工作机制本质就是利用反射,动态的创建GameObject对象并且关联各种C#脚本对象在其上让不同的GameObject对象各司其职扮演好自己的角色
根据Unity提供以及我们书写的剧本(C#脚本)呈现一出游戏戏剧
其中对于一个演员来说,GameObject和Transform是必不可少的关键因素
预先设置好的物体
预制体的作用就是为了重复利用资源,所以对于场景中重复使用的对象都尽可能的做成预制体再拖入游戏使用
对于外部导入的模型资源,导入进来就是以一种预制体的形式存在的
凡是能够拖入Hierarchy面板的,都可以制成预制体,包括但不限于模型、UI、挂载脚本的空对象等。
制作预设体:把Cube拖到Assets文件夹下面,就会自动创建了一个预设体