我在玩新的DOTS软件包。
有一件事我还没有设法做的是使用一个原型来创建一个实体,是可见的场景。这是我目前所看到的,我可以看到实体调试器中正在创建的实体,但它们没有呈现。任何帮助都很感激。我想我在原型上漏掉了一些东西。
using Unity.Entities;
using Unity.Mathematics;
using Unity.Transforms;
using UnityEngine;
public class CreateStuff : MonoBehaviour
{
public int CountX = 100;
public int CountY = 100;
void Start()
{
var entityManager = World.Active.EntityManager;
var archetype = entityManager.CreateArchetype(typeof(Translation), typeof(Scale), typeof(Rotation), typeof(MeshRenderer), typeof(MeshFilter));
for (int x = 0; x < CountX; x++)
{
for (int y = 0; y < CountY; y++)
{
var instance = entityManager.CreateEntity(archetype);
var position = transform.TransformPoint(new float3(x - CountX / 2, noise.cnoise(new float2(x, y) * 0.21F) * 10, y - CountY / 2));
entityManager.SetComponentData(instance, new Translation() { Value = position });
entityManager.SetComponentData(instance, new Scale() { Value = 1 });
}
}
}
}
3条答案
按热度按时间pgx2nnw81#
我不知道你是否还在寻找答案。这就是我如何设法让它工作。
我是通过youtube上的this教程做到这一点的。
kb5ga3dv2#
您可以使用GameObjectConversionUtility
如果你的预置有一个渲染器,当它是一个实体时,它会自动有一个
如果你还没有,请查看ECS示例:https://github.com/Unity-Technologies/EntityComponentSystemSamples
3pmvbmvn3#
代码本身没有问题。我有同样的问题,首先你必须安装“混合渲染器”(Windeow=〉包管理器=〉高级=〉显示预览pacages =〉混合渲染器)
我的代码运行良好。可以从实体和预制件示例化对象