好奇的探索者,理性的思考者,踏实的行动者。
Table of Contents:
Assets/Scenes
目录下的game.unity场景文件,此文件是游戏的入口文件Assets\SceneScript
, 场景里面用到的脚本文件,比如:水特效的、例子特效的
.unity
后缀,场景是游戏内容的承载体
游戏对象(Game Objects)是构成游戏世界的基本元素之一。它们是组成场景的实体,可以代表角色、物体、相机、灯光等可见或不可见的元素。
游戏对象本身并没有可见的形状或图像,它们是一种容器,可以包含各种组件(Components)来定义其行为、外观和功能。游戏对象是通过添加不同的组件来定义其属性和行为的,例如 Transform 组件控制位置、旋转和缩放,而 Mesh Renderer 组件控制渲染模型,Collider 组件用于碰撞检测等等。
Unity 的游戏对象是一种通用的容器,可以根据不同的需求添加、移除和组合不同的组件,从而实现各种各样的游戏逻辑和功能。
组件(Components)是附加到游戏对象(Game Objects)上的模块化功能单元,用于定义游戏对象的行为、特性和功能。通过将不同的组件附加到游戏对象上,可以为它们赋予各种不同的特性和行为。
常用的 Unity 组件:
控制光源,包括 Directional Light(平行光)、Point Light(点光源)、Spotlight(聚光灯)等,用于场景的照明。
.prefab
后缀,是一种预制资源,它允许你保存游戏对象及其相关组件、属性和设置,并在项目中重复使用。
将游戏对象转换为 Prefab:
1. 在场景中选择你想要转换为 Prefab 的游戏对象。
2. 将其拖拽到项目视图中(Project 视图)中,这样就在项目文件夹中创建了一个 Prefab。
使用 Prefab:
一旦创建了 Prefab,你可以在项目中的任何地方使用它:
- 将 Prefab 拖拽到场景中创建一个新的实例。
- 在脚本中使用 Instantiate 方法动态地生成 Prefab 的实例。
Unity 游戏引擎是用 C++ 和 C# 以及一些其他语言开发的。主要的引擎代码和底层系统是用 C++ 编写的,而编辑器和一些高级功能是用 C# 编写的。
IL2CPP 首先将 C# 脚本代码编译成中间语言(Intermediate Language,IL),这是 .NET 平台通用的中间码。然后 IL2CPP 将 IL 代码转换为 C++ 代码,包括了类型信息、虚函数表等,最后将这些 C++ 代码编译为目标平台的本地机器码,如 x86、ARM 或者其他架构的机器码。
IL2CPP 的工作流程使得游戏可以在不同平台上运行,而不必依赖于特定的 .NET 运行时,同时也提供了更好的性能和更高的代码安全性。
Assets/Scripts
文件夹.meta
文件,用于存储该脚本在 Unity 中的设置、引用和相关信息。这个文件与脚本文件一同保存在项目中编译后的文件放在:Library\ScriptAssemblies
目录中, 下面是各个名字的含义:
Phase | Assembly name | Script files |
---|---|---|
1 | Assembly-CSharp-firstpass | Runtime scripts in folders called Standard Assets, Pro Standard Assets and Plugins. |
2 | Assembly-CSharp-Editor-firstpass | Editor scripts in folders called Editor that are anywhere inside top-level folders called Standard Assets, Pro Standard Assets and Plugins. |
3 | Assembly-CSharp | All other scripts that are not inside a folder called Editor. |
4 | Assembly-CSharp-Editor | All remaining scripts (those that are inside a folder called Editor). |
Unity 引擎在处理和管理项目时,会生成一些额外的目录和文件。Library
目录是其中一个,其中包含了项目的一些缓存和中间文件。在 Library
目录下,ScriptAssemblies
和 UnityAssemblies
目录都是与编译和脚本相关的。
1. ScriptAssemblies 目录:
- ScriptAssemblies
目录存储了项目的脚本编译后的程序集文件。在 Unity 中,编译器将脚本编译成 IL(Intermediate Language),然后通过脚本后端(Scripting Backend)编译成特定平台的机器码。这些编译后的程序集文件(Assembly)被存储在 ScriptAssemblies
目录中。这些程序集文件包括了项目中的 C#、JavaScript 或 Boo 脚本编译后生成的代码。
2. UnityAssemblies 目录:
- UnityAssemblies
目录包含了 Unity 引擎的一些核心程序集文件。这些程序集文件包含了 Unity 引擎的核心功能和库,它们是 Unity 运行时所需的一部分,用于支持游戏运行和项目的正常运行。这些程序集文件通常是 Unity 引擎的一部分,而不是用户自己编写的脚本。通常是预先编译好的本地机器码