文章目录
- 一、Unity游戏对象和组件的本质
- 1、开发游戏的本质
- 2、万物之根本——空对象
- 2.1 什么是空对象?
- 2.2 创建空对象
- 3、Unity游戏对象的本质
- 4、 transform组件
- 4.1 transform组件的重要性
- 4.2 修改transform的值
- 4.4 **Transform的作用**
- 4.3 重置transform的值
- 5、总结
- 二、反射机制和游戏场景
- 1、知识回顾——C# 的反射
- 2、Unity中的反射机制
- 2.1 **什么是反射?**
- 2.2 **为什么需要反射?**
- 3、反射机制的应用
- 3.1 **为GameObject添加脚本**
- 3.2 **Inspector面板的操作**
- 3.3 场景文件
- 三、总结
- 1、**Unity的工作机制**
- 2、**Unity的本质**
- 专栏推荐
- 完结
一、Unity游戏对象和组件的本质
1、开发游戏的本质
开发游戏的本质其实可以理解为:我们开发者就像导演
,Scence场景视图就像是舞台
,里面有各种演员
(对象),我们给每个演员分配剧本
(脚本/组件),这些演员按导演给定的剧本在舞台上表演,最后通过相机拍摄下这部戏(游戏
),给玩家观看(玩
)
2、万物之根本——空对象
2.1 什么是空对象?
空对象(Empty Object
)是Unity中最基本的游戏对象,它不包含任何预设的组件,仅有一个 Transform
组件。你可以把它想象成一个没有特定功能的容器或节点。
GameObject
是Unity提供的一个基础类,所有的游戏对象都是基于它的。你可以把 GameObject
想象成一个没有剧本的演员,它可以是任何东西:图片、模型、音效、摄像机等等。它本身没有什么特别的功能,但可以通过挂载不同的组件(如脚本)来实现各种行为。
2.2 创建空对象
在层级窗口(Hierarchy
)中右键点击,选择 Create Empty 可以创建一个空对象。
3、Unity游戏对象的本质
在层级窗口右键可以创建不同的对象,这些不同对象其实相当于是unity做好的一个个预设
其实本质就是一个空对象+对应的组件,然后就能让它扮演对应的角色
其实之所以场景上的这些对象能表现出不同的状态,其实就是因为它们身上挂载了不同的脚本(组件),这些脚本就决定了它们扮演的角色。
比如摄像机,并不是说摄像机对象与生俱来就是摄像机,而是因为他挂载了Camera组件而已。
比如,我们完全可以自己创建一个摄像机,不使用unity的预设
新建空物体,改名为新摄像机
添加Camera组件
这样我们就通过自己添加组件的方式,添加了一个摄像机。
其它对象同理,比如灯光,就是添加了Light组件,它才是灯光。
4、 transform组件
4.1 transform组件的重要性
每个游戏对象都必须有一个 Transform 组件,它记录了对象在世界中的位置(Position)、旋转(Rotation)和缩放(Scale)信息。
前面说了空对象是万物之根本。我们可以右键创建一个空对象看看。
可以看到一个对象一定要有一个位置信息,带入现实,如果一个东西没有位置,那么他就没有任何意义了,相当于根本就不存在,所以transform组件是不可或缺的。
4.2 修改transform的值
我们可以直接在面板上修改tranform的数据,来实现对象的移动、旋转和缩放。
其实前面在场景视图修改物体的移动、旋转和缩放的本质,其实就是间接的修改tranform面板上的数据。
注意
:如果你在运行时修改了tranform数据,比如旋转、缩放等等,游戏一旦结束运行,数据并不会保留。一般我们如果运行时修改了数据,要在结束运行前点击复制数据内容,结束运行再粘贴上去。
4.4 Transform的作用
每个 GameObject
都有一个 Transform
组件,它就像是演员的剧本,告诉演员在哪里站、如何转、怎么缩放。Transform
记录了物体的位置、旋转和缩放信息,使得我们可以精确控制它们在3D空间中的表现。
4.3 重置transform的值
unity提供快速重置transform的值方案,点击右边上角三个点,点击重置
即可
5、总结
- 空对象 是构建复杂场景的基础,可以用作组织工具或功能载体。
- 组件 决定了游戏对象的具体行为和外观,通过组合不同组件可以实现复杂功能。
- Transform 组件是每个游戏对象不可或缺的一部分,它控制着对象的空间变换。
二、反射机制和游戏场景
1、知识回顾——C# 的反射
简单说一下,C# 反射 (Reflection
) 是一种强大的机制,它允许程序在运行时动态地查看和操作程序的元数据。通过反射,我们可以在不事先知道类型信息的情况下,获取类型信息并操作类型中的成员(如类、方法、属性、字段等)。
对反射不了解的,可以回去看我C#篇有具体介绍反射:【从零开始入门unity游戏开发之——C#篇39】C#反射知识
2、Unity中的反射机制
2.1 什么是反射?
想象一下,你在玩一个角色扮演游戏(RPG),你可以随时查看自己的状态、装备、技能等信息。反射就像是在游戏中提供了一个“开发者模式”,让你可以在程序运行时查看和操作其他对象的信息,比如类、方法、字段等。
2.2 为什么需要反射?
在Unity中,反射帮助我们动态地创建和管理对象。比如,你可以通过脚本为游戏对象添加新的功能,而不需要每次都手动去编写代码。这就像给游戏中的角色穿上不同的装备或赋予他们新的技能一样灵活。
3、反射机制的应用
3.1 为GameObject添加脚本
当你在Unity编辑器中将一个C#脚本拖拽到某个 GameObject
上时,Unity实际上是在背后使用反射机制将这个脚本实例化并与 GameObject
关联起来。这就像是给演员分配了一部新的剧本,告诉他接下来要做什么。
3.2 Inspector面板的操作
当你在Inspector面板中修改 Transform
或者其他组件的属性时,Unity也在使用反射来获取和设置这些属性值。这就像导演在后台调整演员的动作和台词一样。
3.3 场景文件
前面说了,Unity中的游戏场景本质上是一个配置文件。它记录了场景中所有对象及其属性信息。当你加载一个场景时,Unity会读取这个文件,并通过反射机制创建相应的 GameObject
和关联的脚本。
三、总结
1、Unity的工作机制
Unity的工作原理就像是在一台虚拟的剧院里导演一场戏剧。GameObject
和 Transform
是必不可少的关键因素,相当于舞台上的演员和他们的剧本。通过反射机制,Unity能够动态地创建这些演员并赋予他们不同的剧本(C#脚本),使每个演员都能按照预定的逻辑行动,最终呈现出丰富多彩的游戏世界。
2、Unity的本质
Unity利用反射动态创建 GameObject
对象,并在其上关联各种C#脚本对象。这使得不同的 GameObject
对象可以各司其职,扮演好自己的角色。根据Unity提供的以及我们编写的剧本(C#脚本),一出精彩的游戏戏剧就此上演。
专栏推荐
地址 |
---|
【从零开始入门unity游戏开发之——C#篇】 |
【从零开始入门unity游戏开发之——unity篇】 |
【制作100个Unity游戏】 |
【推荐100个unity插件】 |
【实现100个unity特效】 |
【unity框架开发】 |
完结
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!
好了,我是向宇
,https://xiangyu.blog.csdn.net
一位在小公司默默奋斗的开发者,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!如果你遇到任何问题,也欢迎你评论私信或者加群找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~