跳转至

实体Entity[]

E1:Light | E2:AudioSrc/Mesh

对于面向对象

class Entity
{
    mat4 Transform;
    string tag;
}

class Light : public Entity
{
    vec3 Color;
    float Intensity;
    Type 
};

class AudioMesh : public Entity
{
    AudioClip* Clip;
    Mesh* mesh;
}


class Player : public AuioMesh
{


}

为了player,我们已经需要创建四个实体了。

实体组件系统

因为CPU缓存的原因, 如果有100万的数据,显然一个连续的内存则更容易存储,性能也更好 。
```c++ class Scene { std::vector Entities;

for(Entity* e : Entities)
{
    e->OnUpdate()
}

}

class Entity { mat4 Transform; string Tag;

std::vector<Component*> Components; 
virtual void OnUpdate(float ts);

}

struct Component {

};

struct Light : public Component { vec Color; float Intensity; Type Type; }

struct AudioComponent { AudioClip* clip; }

struct MeshComponent { MEsh* Mesh; } ```