gpt4 book ai didi

naming-conventions - "entity"和 "game object"之间有什么区别?

转载 作者:行者123 更新时间:2023-12-03 21:34:30 28 4
gpt4 key购买 nike

我正在这里研究 3D 引擎 API(渲染引擎,而不是游戏引擎本身)并试图获得正确的类名。

在我的系统中,我有一大堆组件,例如“相机”、“变换”、“灯光”、“ Material ”等,包括另一种我称之为“对象”的组件类型。

每个“对象”都有一个链接到每个其他组件类型,即。指向“相机”的链接、指向“ Material ”的链接等等。

很标准的东西。

我的问题是 - 应该将其称为“对象”或“实体”,还是其他名称?

任何人都可以向我指出有关这些概念的规范文献吗?对于许多人来说,这似乎是个人品味的问题,但为了最大限度地理解文档,我想把这个微妙之处牢记在心。

最佳答案

我见过很少的 webgl javascript 引擎。每个人的术语都不同。

Distinction between an “entity” and a “game object”?



通常物体是您可以通过视觉和/或触觉感知的东西。而实体可能只能通过第六感感知或根本无法感知(场景中的两个摄像头无法相互感知)。每个对象都是实体,但并不是每个实体都用对象表示。

编程中,
相机、灯光、模型、场景,所有这些都需要位置、旋转和缩放。还有很多事情是依赖的,所以这里有另一个重要的词:Node.js。

在 OOP 层次结构中,Node 是第一个。它只有一个父节点,除了第一个没有的节点和零个或多个子节点。
实体扩展节点。它有位置、旋转、缩放+父级、子级。每一次转变都会影响到所有的 child 。
对象扩展实体。对象可能具有额外的各种属性,例如一组网格,(每个对象由一个或多个网格组成,每个网格都有 Material )。

温馨提示:

有时在 OOP 层次结构中拥有 3 个不同的对象是没有用的。大多数引擎将它们合并为一个或两个对象,不同的组件可能会排除构造函数中的属性。例如全局光不需要位置、旋转或缩放。定向光不需要位置和比例,但需要旋转。但是仅仅因为两个组件而扩展整个 OOP 层次结构是不值得的。

在 playcanvas 中,它的名字是实体。在threejs中,它的名字是Object3D。名称也可能是 GraphNode 或 Node,因为它在 cocos2d(它是 2d 引擎)中。

我没有任何文献,但我同意 Thomas 的观点:尽量避免使用 Object、Node 之类的词,因为它令人困惑。我认为将它们合并在一起的最佳名称是 Entity,但它与或多或少或对单词本身的描述无关。最重要的是,你和其他人觉得什么是令人困惑的。

关于naming-conventions - "entity"和 "game object"之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27897714/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com