由于Unity ECS仍然是个preview package,本文谈到的内容可能和最新版本有所不同。
有用的链接
1.
相信看到这篇文章的人肯定已经知道ECS在很多方面比OOP有很多优势,Unity也一直在研究并尝试实现ECS框架,未来的某一天ECS也许会非常流行。尽管现在的Unity的ECS还没有非常完善,但是早点熟悉一下肯定不是坏事。😄
ECS的全称Entity Component System,用另一种说法也就是由 物体 数据 行为逻辑 组成。任何都会被一个管理员(EntityManager)进行统一管理,而每一个游戏世界(world)里,只有一个独一无二的管理员。
2.
道理我都懂,但真的写起来还是有点儿迷糊的。所以还是亲手试试,加深理解。
首先在Unity里导入Entities 组件和Hybrid Renderer组件(如果搜索不到,就要在Advanced里选择preview packages)
然后简单地写一个游戏开始时就会创建实体的script。
using Unity.Entities;
public class Spawner : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
MakeEntity();
}
private void MakeEntity()
{
EntityManager entityManager = World.DefaultGameObjectInjectionWorld.EntityManager;
entityManager.CreateEntity()