问题标签 [unity-dots]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1809 浏览

unity3d - 如何使用 DOTS 生成单位?

我正在关注此演讲https://www.youtube.com/watch?v=BNMrevfB6Q0并尝试了解如何在单击鼠标时生成单位(用于测试目的)。

一般来说,我创建了一个 UnitBase 等,它实现了 IConvertGameObjectToEntity::Convert 以确保所有单位都可以转换为实体对象,如下所示:

这些是主要组件:

现在,在我的测试脚本中,我有这个:

其中 unitPrefab 只是一个简单的 GameObject,上面有一个 Capsule 和一个基本上是空的脚本,现在是空的:

问题是,当我单击时,实体被创建但单元没有被渲染。

显然我错过了一些东西,但我不明白它是什么。

任何帮助将非常感激!

0 投票
0 回答
755 浏览

unity3d - IOS 上的 Unity ECS/Burst

我在 macOS Mojave.10.14.6 下使用 Unity 2019.3.0f6 创建了一个新项目

向场景中添加了一个简单的立方体,并包含来自包管理器的以下包:

  • 实体预览.11 - 0.5.1
  • 爆发 1.2.2

我可以在 Unity 上将项目构建为 Release,并且在 xCode(v11.3.1) 上成功构建。

但是当我尝试在带有 IOS 13.3.1 的 iPhone X 设备上运行它时,我得到了以下异常:

NotSupportedException:要编组托管方法,请将名为“MonoPInvokeCallback”的属性添加到方法定义中。我们尝试编组的方法是:Unity.Burst.BurstCompiler.Compile[T] (T delegateObj, System.Boolean isFunctionPointer) [0x00000] in Unity.Entities.StructuralChange::AddComponentEntitiesBatchExecute (T delegateObj, System.Boolean isFunctionPointer) [0x00000] in <000000000000000000000000000000000>:0 在 Unity。 Entities.StructuralChange.Initialize () [0x00000] in <000000000000000000000000000000000>:0 在 Unity.Entities.EntityManager..ctor (Unity.Entities.World 世界) [0x00000] in <000000000000000000000000000000000. ctor (System.String name) [0x00000] in <00000000000000000000000000000000>:0 在 Unity.Entities.DefaultWorldInitialization.Initialize (System.String defaultWorldName, System.

(文件名:目前在 il2cpp 线路上不可用:-1)

知道为什么在一个简单的项目中会发生这种情况吗?

0 投票
1 回答
441 浏览

unity3d - Time.timeScale 不适用于 Unity.Physics 包(DOTS)

如果我设置 Time.timeScale = 0; 如果设置 Time.fixedDeltaTime = 0,则没有任何变化;我的物理对象开始出现奇怪的行为,但并没有完全停止。也许有人知道如何更改 DOTS Physics 的 timeScale

0 投票
2 回答
2388 浏览

unity3d - Unity DOTS (ECS) 中的“FixedUpdate”在哪里?

我开始找到使用 DOTS(面向数据的技术堆栈)方法制作对象的方法。

到处都有几个示例,Youtube 视频以及直接来自 Unity 的示例,例如 github repo 'EntityComponentSystemSamples'。

在所有这些中,我偶然发现了“OnUpdate”,但从来没有发现“OnFixedUpdate”。

通常情况下,Unity GameObjects 会同时拥有两者,一个用于每个图形帧更新 ( OnUpdate),一个用于每个物理运动更新 ( OnFixedUpdate)。

在尝试创建使用 Rigidbody.AddForce() 的行为时,使用 FixedUpdate() 始终很重要。

DOTS 中是否删除了这个概念?如何在 DOTS 中向 PhysicsBody 添加脚本化的不同力?

目前,我正在将我force*deltatime的添加到Unity.Physics.PhysicsVelocity更新中。

0 投票
1 回答
243 浏览

c# - 使用扩展方法和单例类封装Unity ECS,你怎么看?

我一直在考虑使用扩展方法和一次性单例类对 Unity ECS 进行一些封装,以保留对 BlobAssetStore 或 EntityManager 等公共资源的引用,类似于此草案:

您如何看待这种做法?

0 投票
2 回答
1327 浏览

linux - 尝试启动新的 2D 项目时,Linux 上的 Unity ECS 错误

我已经在 linux 上安装了 Unity,在标准模型中开发游戏时,一切似乎都按预期工作。但是,当我为 ECS 开发设置项目时,通过安装以下软件包:

  • 爆发 1.3.0
  • 实体 0.11.0
  • 混合渲染器 0.5.1
  • 乔布斯 0.2.10
  • 数学 1.1.0

创建空白 2D 项目时出现以下错误:

Unity 版本:2019.3.14f1 个人版

任何人都知道可能是什么问题?

0 投票
2 回答
844 浏览

c# - 当我尝试访问实体组件数据时,当我构建到我的 Iphone 时,Unity c# null 引用错误

我正在构建一个使用 CodeMonkey 开发的 A* 寻路系统的游戏: https ://www.youtube.com/watch?v=XomlTHitAug&list=PLzDRvYVwl53v55lu_TjC21Iu4CuFGQXVn&index=3

我修改了他提供的文件,使其更加简单。我到了路径查找在编辑器中完美运行的地步。

但是,当我在手机上构建游戏时,我从寻路移动脚本的 Update 方法中收到了一个空引用异常。经过一些调试,我发现convertedEntityHolder.GetEntity() 命令返回Entity.Null,并且convertedEntityHolder.GetEntityManager() 命令返回Null。当然,这会导致空引用异常。我不确定为什么这会在构建到我的 Iphone 时中断。有任何想法吗?

Entity 预制件上有四个脚本组件。如果您需要查看他们的代码,请告诉我。他们是:

转换实体.cs

ConvertedEntityHolder.cs

PathPositionAuthoring.cs

路径跟随.cs

将GameObjectToEntitySystem.cs

0 投票
2 回答
1510 浏览

unity3d - unity ECS 获取实体变换

有没有办法从实体中获取转换组件?我知道,有它的新库,找不到。我只能找到翻译。也许它与获取实体的另一种方式有关?也许有查询。任何人都可以帮忙。谢谢。在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
901 浏览

unity3d - How do you reference an array item within nativeArrray in ECS

I'm trying to do the following:

#xA;

But the line that assigns targetData.targetEntity = playerEntity; throws the error:

Cannot implicitly convert type 'Unity.Collections.NativeArray<Unity.Entities.Entity>' to 'Unity.Entities.Entity'

0 投票
1 回答
1708 浏览

unity3d - Unity 实体不在播放模式下渲染

我尝试使用代码实例化一个实体:

我尝试使用 ConvertToEntity 脚本。我还创建了一个子场景,所有三种方法都没有渲染。我可以在 Entity Debugger 中看到实体,所有实体都有一个 Translation,以及相关的渲染组件,一切看起来都不错。这些是我安装的 ECS 包:

  • 爆发 1.3.3
  • 集合 0.9.0-preview.6
  • 实体 0.11.1-preview.4
  • 混合渲染器 0.5.2-preview.4
  • 乔布斯 0.2.10-preview.12

使用 Unity 2020.1.0b12.3931

欢迎任何建议和想法