前言 ECS 按照我目前的理解是继承接口用来相互传输数据从而完成面向数据的传输
首先创建一个脚本给Cube挂上 CubeMoveComponentDate
脚本是Struct数据结构类型 ps:脚本我是分开的,当时也可以写在一起,嘿嘿
using System.Collections;
using System.Collections.Generic;
using Unity.Entities;
using UnityEngine;
[GenerateAuthoringComponent]
public struct CubeMoveComponentDate : IComponentData
{
public float speed;
}
上面这个脚本大概可以理解为用来控制属性变量,自己的属性变量,那谁来控制自身的组件那?然后我们就有了面向数据的下一个管理脚本
这个脚本就不用挂载了 额里面的大概意思就是我控制自身移动属性的X轴,然后速度我来调用结构体里面的变量属性,这样就完成了数据的传输
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Entities;
using Unity.Transforms;
using Unity.Jobs;
public class CubeComponentSystem : JobComponentSystem
{
protected override JobHandle OnUpdate(JobHandle inputDeps)
{
float time = Time.DeltaTime;
return Entities.ForEach((ref Translation translation, in CubeMoveComponentDate cubeMoveComponentDate) =>
{
translation.Value.x += cubeMoveComponentDate.speed * time;
}).Schedule(inputDeps);
}
}
然后运行发现场景中的Cube(entitiy)移动了吧
可能讲的有点迷迷糊糊,下一篇会实验性的讲解数据传输面向数据