C# API 接口结构

本章节将为您简单的介绍 C# API 接口的结构。我们在本章节为您介绍了例如某些功能或是系统应该属于哪里, 再例如某些文件是与什么主题功能相关的,等等的一些问题。

EToD - ScriptCore 项目文件结构

所有的 C# 源文件都应该存放在 EToD-ScriptCore/Source 文件目录中。 需要特别注意的是,在此文件目录以外不应该存在任何 .cs 文件类型的核心代码文件。

Attributes ( 属性 ) /

本文件目录内的文件对于仅仅拓展 C# API 接口来说,并不是非常有用。 如果你想去拓展 EToD-Editor ,那么 Attributes 内的文件对你来说会更加有用。 但简而言之,Attributes ( 属性 ) 这个文件目录应该包含我们想要添加的任何自定义的 C# 属性。

Audio ( 音频 ) /

该文件目录中包含了所有的音频数据 / 使用程序类,但是不包含 AudioComponent 组件。

Core ( 核心 ) /

该文件目录中包含了一些有用的核心类,例如 Application.csInput.cs 以及 Log.cs。 为了简单和更加易于开发者使用,我们通常将这些类被声明为 static 的。

该文件目录中还包括了扩展我们的 C# API 接口所需要的最重要的文件: InternalCalls.cs 。这是一个包含我们需要在 C++ 中实现的所有方法的一个重要文件。

Math ( 数学 ) /

该文件目录中包含了所有的数学类,您几乎不需要向该文件目录中添加新的文件,但是您可能需要向这些文件中已被定义的类中添加您所需要的方法 (函数) 。

Mathf.cs 该文件是把一般实用的数学方法放在一起的地方,比如 Abs, Min, Max, Lerp 等...

Physics ( 物理 ) /

该文件目录中包含了所有的物理数据和实用程序类 / 结构,它是定义所有碰撞体数据类的文件目录, 它还包含一些静态的 Physics 类 , 其中还包含有一些非常有用的物理相关方法,比如该目录包含有 Raycast, Overlap 方法 等...

Renderer ( 渲染器 ) /

该文件目录中包含有所有与渲染器 / 图形相关的类,例如 MeshStaticMesh,以及 Material,通常这些与图形渲染有关的类您不必去扩展,我们将尽可能去完善相关的渲染管线。

Scene ( 场景 ) /

该文件目录将是您所需要完成扩展核心 C# API 接口相关工作的主文件夹, Scene 文件目录中包含有 Components.csEntity.cs 以及 Scene.cs 文件。

你可以在 Components.cs 文件中修改现有的组件,以及您可以在 C++ 引擎层中实现新组件时添加拓展新的组件。 我们会在后面的更新中提供一个示例,来大致的展示如何实现与添加拓展新的组件。

Entity.cs 文件中包含 EToD Entity 类,所有 ( 或大多数 ) 游戏脚本都将从该类中扩展出新的子类。 你几乎不需要对该文件进行任何的修改,但是您必须记住,您要进行的大多数修改可能只能通过组件来完成。 并且当您更改此文件时,请尽量不要破坏向后兼容性,我们希望可以尽可能的避免破坏游戏的相关脚本。

Scene.cs 该文件很有可能不会被游戏脚本直接使用,它包含了与场景交互、生成预置体、创建和销毁实体、按 ID 或名称查找实体相关的方法。 大多数游戏脚本将与 Entity.cs 文件中的等效方法交互。而不是直接与 Scene 类 交互。