当前位置: 首页 > wzjs >正文

刷单做任务的网站一级造价工程师分几个专业

刷单做任务的网站,一级造价工程师分几个专业,wordpress 学习,网站建设方案书ppt文章目录 前言安装 DOTS 包创建实体1.手动创建空实体(适用于运行时动态创建)2.克隆 预制体(主线程同步操作)3.克隆 预制体(兼容Job System)4.通过 GameObject 转换(Baker方式) 其他E…

文章目录

    • 前言
    • 安装 DOTS 包
    • 创建实体
      • 1.手动创建空实体(适用于运行时动态创建)
      • 2.克隆 预制体(主线程同步操作)
      • 3.克隆 预制体(兼容Job System)
      • 4.通过 GameObject 转换(Baker方式)
    • 其他Entity实体操作

前言

作为 DOTS 教程,我们将创建一个旋转立方体的简单程序,并将传统的 Unity 设计转换为 DOTS 设计。

  • Unity 2022.3.52f1
  • Entities 1.3.10

安装 DOTS 包

要安装 DOTS 包,请按照以下步骤操作:

(1)从菜单“窗口 → 包管理器”打开包管理器。
(2)搜索“ Entities” 并安装 Entities和Entities Graphics。
(3)搜索“ Universal RP” 并安装 Universal RP,并设置Graphics/Scriptable Render Pipeline Settings。

这会添加“实体”作为依赖项,并递归添加它所依赖的关联包( Burst、Collections、Jobs、Mathematics等)。

在这里插入图片描述

创建实体

1.手动创建空实体(适用于运行时动态创建)

// 通过 EntityManager 创建
EntityManager entityManager = World.DefaultGameObjectInjectionWorld.EntityManager;
Entity entity = entityManager.CreateEntity();// 添加组件
entityManager.AddComponent<Rotator>(entity);
entityManager.SetComponentData(entity, new Rotator { speed = 100f });

2.克隆 预制体(主线程同步操作)

// 在 System 中实例化
public partial struct SpawnSystem : ISystem
{[BurstCompile]public void OnUpdate(ref SystemState state) {//克隆子弹预制体Entity bulletEntity = state.EntityManager.Instantiate(entitiesReferences.bulletPrefabEntity);//设置子弹位置SystemAPI.SetComponent(bulletEntity, LocalTransform.FromPosition(bulletSpawnWorldPosition));//设置子弹伤害等属性RefRW<Bullet> bulletBullet = SystemAPI.GetComponentRW<Bullet>(bulletEntity);bulletBullet.ValueRW.damageAmount = shootAttack.ValueRO.damageAmount;bulletTarget.ValueRW.targetEntity = findTarget.ValueRO.targetEntity;}
}

3.克隆 预制体(兼容Job System)

// 在 System 中实例化
public partial struct SpawnSystem : ISystem
{[BurstCompile]public void OnUpdate(ref SystemState state) {// 通过 EntityCommandBuffer 安全实例化var ecb = new EntityCommandBuffer(Allocator.TempJob);Entity bulletPrefab = GetSingleton<BulletPrefab>().Value;Entity newBullet = ecb.Instantiate(bulletPrefab);ecb.SetComponent(newBullet, new Bullet { speed = 10f,damageAmount = 5 });ecb.Playback(state.EntityManager);}
}

在 System 中创建实体时,推荐使用 EntityCommandBuffer 实现线程安全
动态创建实体需确保已添加必要的组件依赖(如 Transform 组件)
预制件方式适合需要大量复用的游戏对象(如子弹、敌人等)

4.通过 GameObject 转换(Baker方式)

原理:
GetEntity() 自动为 GameObject 创建 Entity
TransformUsageFlags.Dynamic 表示实体需要动态变换组件
适用于 SubScene 场景中的对象(烘焙阶段自动处理)

using UnityEngine;
using Unity.Entities;public class RotatorAuthoring : MonoBehaviour
{public float Speed;//将 MonoBehaviour 的 RotatorAuthoring 组件数据(如 Speed)//转换为 ECS 的 Rotator 组件数据(IComponentData)public class RotatorBaker : Baker<RotatorAuthoring>{public override void Bake(RotatorAuthoring authoring){//通过Bake方式,把当前游戏对象转换为Entityvar entity = GetEntity(TransformUsageFlags.Dynamic);//给Entity添加数据组件AddComponent(entity, new Rotator { speed = authoring.Speed });}}
}//旋转数据类
public struct Rotator : IComponentData
{public float speed;
}

其他Entity实体操作

摧毁一个实体

entityManager.DestroyEntity(entity);

添加组件

AddComponent(Entity, ComponentType) : 全部
・AddComponentData<T>(Entity, T) : 基本组件
・AddSharedComponentData<T>(Entity, T) : 共享组件
・AddBuffer<T>(Entity) : 动态缓冲区组件
・AddChunkComponentData<T>(Entity) : Chunk 组件
・AddComponentObject(Entity, object) : 组件对象entityManager.AddComponentData(entity, new Translation {Value = new float3(2f, 0f, 4f)
});

获取组件

GetComponentData<T>(Entity):基本组件
・GetSharedComponentData<T>(Entity):共享组件
・GetBuffer<T>(Entity):动态缓冲区组件
・GetChunkComponentData<T>(ArchetypeChunk):Chunk 组件
・GetComponentObject<T>(Entity):组件对象Position position = entityManager.GetComponentData<Position>(entity);

组件更新

SetComponentData<T>(Entity, T):基本组件
・SetSharedComponentData<T>(Entity, T):共享组件
・SetChunkComponentData<T>(ArchetypeChunk, T):Chunk 组件entityManager.SetComponentData(entity, new Translation {Value = new float3(2f, 0f, 4f)
});

删除组件

entityManager.RemoveComponent<Position>(entity);
http://www.dtcms.com/wzjs/581163.html

相关文章:

  • 功能性的网站建设深圳seo优化服务商
  • 推荐邵阳网站建设赣州微和联网络科技有限公司
  • 外贸企业公司网站建设哪里建网站便宜
  • 惠州手机网站商城建设网站规划的类型
  • 单页网站建设哪里有提供小型购物网站
  • 想给公司做网站怎么做做企业网站哪里找
  • 前段 网站建设实例软件工程排名
  • 网站开发与维护算什么职位一个电商网站的网页制作
  • 虎丘苏州网站建设抖音代运营方案及报价
  • 专门做搞笑游戏视频网站wordpress开发前台登录插件
  • 做个网站在线投稿页面网站文章多久收录
  • 青岛网站厉害的公司系统开发费用计入什么科目
  • 做三轨网站犯法吗友情链接平台赚钱吗
  • 旅游网站建设与规划阿里云虚拟主机网站
  • asp影楼网站数据库用什么软件顺庆区城乡规划建设局门户网站
  • 网站图片延时加载百度趋势搜索大数据
  • 怎么做淘宝客网站赚钱企业网站与网络营销
  • 珠海网站建设珠海易推网没域名可以用wordpress么
  • 百度怎么注册自己的网站怎么找货源开网店
  • 网站做可以退款吗公司logo如何注册
  • 手机网站怎样建设网站报错403
  • 网站蜘蛛怎么看做网站有没有免费空间
  • 做一个网站需要多少钱大概费用mvc5 网站开发美學 pdf
  • 网站过期查询wordpress 页面颜色
  • 什么网站程序可以做抽奖页面淘宝上做的网站
  • 城阳网站建设哪里有网站开发前端应用程序
  • 如何进行网站宣传推广今天刚刚长沙
  • 合肥移动网站建设平面设计正规培训机构
  • 网站一般建什么品牌建设是什么意思
  • 网站建设优化话术网址转换成短链接