C# API 接口结构
本章节将为您简单的介绍 C# API 接口的结构。我们在本章节为您介绍了例如某些功能或是系统应该属于哪里, 再例如某些文件是与什么主题功能相关的,等等的一些问题。
EToD - ScriptCore 项目文件结构
所有的 C# 源文件都应该存放在 EToD-ScriptCore/Source
文件目录中。
需要特别注意的是,在此文件目录以外不应该存在任何 .cs
文件类型的核心代码文件。
Attributes ( 属性 ) /
本文件目录内的文件对于仅仅拓展 C# API 接口来说,并不是非常有用。
如果你想去拓展 EToD-Editor
,那么 Attributes 内的文件对你来说会更加有用。
但简而言之,Attributes ( 属性 ) 这个文件目录应该包含我们想要添加的任何自定义的 C# 属性。
Audio ( 音频 ) /
该文件目录中包含了所有的音频数据 / 使用程序类,但是不包含 AudioComponent
组件。
Core ( 核心 ) /
该文件目录中包含了一些有用的核心类,例如 Application.cs
,
Input.cs
以及 Log.cs
。 为了简单和更加易于开发者使用,我们通常将这些类被声明为 static
的。
该文件目录中还包括了扩展我们的 C# API 接口所需要的最重要的文件:
InternalCalls.cs
。这是一个包含我们需要在 C++ 中实现的所有方法的一个重要文件。
Math ( 数学 ) /
该文件目录中包含了所有的数学类,您几乎不需要向该文件目录中添加新的文件,但是您可能需要向这些文件中已被定义的类中添加您所需要的方法 (函数) 。
Mathf.cs
该文件是把一般实用的数学方法放在一起的地方,比如 Abs
,
Min
, Max
, Lerp
等...
Physics ( 物理 ) /
该文件目录中包含了所有的物理数据和实用程序类 / 结构,它是定义所有碰撞体数据类的文件目录, 它还包含一些静态的 Physics 类
,
其中还包含有一些非常有用的物理相关方法,比如该目录包含有 Raycast
, Overlap 方法
等...
Renderer ( 渲染器 ) /
该文件目录中包含有所有与渲染器 / 图形相关的类,例如 Mesh
,
StaticMesh
,以及 Material
,通常这些与图形渲染有关的类您不必去扩展,我们将尽可能去完善相关的渲染管线。
Scene ( 场景 ) /
该文件目录将是您所需要完成扩展核心 C# API 接口相关工作的主文件夹,
Scene 文件目录中包含有 Components.cs
, Entity.cs
以及
Scene.cs
文件。
你可以在 Components.cs
文件中修改现有的组件,以及您可以在 C++ 引擎层中实现新组件时添加拓展新的组件。
我们会在后面的更新中提供一个示例,来大致的展示如何实现与添加拓展新的组件。
Entity.cs
文件中包含 EToD Entity 类,所有 ( 或大多数 ) 游戏脚本都将从该类中扩展出新的子类。
你几乎不需要对该文件进行任何的修改,但是您必须记住,您要进行的大多数修改可能只能通过组件来完成。
并且当您更改此文件时,请尽量不要破坏向后兼容性,我们希望可以尽可能的避免破坏游戏的相关脚本。
Scene.cs
该文件很有可能不会被游戏脚本直接使用,它包含了与场景交互、生成预置体、创建和销毁实体、按 ID 或名称查找实体相关的方法。
大多数游戏脚本将与 Entity.cs
文件中的等效方法交互。而不是直接与 Scene 类
交互。