Unity ECS自软件包更新以来未显示创建的实体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity ECS自软件包更新以来未显示创建的实体相关的知识,希望对你有一定的参考价值。

我试图产生一些实体并为其分配网格和材质。无论如何,它们都不会出现在编辑器或游戏视图中。当我使用“ GameObjectToEntity”转换脚本时,该实体确实出现了,我尝试了新的Alpha版本的编辑器(2020.1.0a25),但没有帮助。我也在使用URP。它可能与更新预览程序包(实体,混合渲染等)有关,因为在使用旧版本的其他项目中我没有问题。我可能还是错过了代码中的某些内容。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Entities;
using Unity.Rendering;
using Unity.Transforms;
using Unity.Mathematics;
using Unity.Collections;

public class EntityCreator : MonoBehaviour


    [SerializeField] public Mesh theMesh;
    [SerializeField] public Material theMaterial;

    // Start is called before the first frame update
    void Start()
    
        EntityManager entityManager = World.DefaultGameObjectInjectionWorld.EntityManager;

        EntityArchetype eArch =  entityManager.CreateArchetype(
                typeof(RenderMesh),
                typeof(Translation),
                typeof(LocalToWorld),
                typeof(MoveSpeedComponent)
            );

        NativeArray<Entity> eArray = new NativeArray<Entity>(10, Allocator.Temp);

        entityManager.CreateEntity(eArch, eArray);

        foreach (Entity ent in eArray)
        
            entityManager.SetComponentData(ent, new Translation  Value = new Vector3(0f,0f, 0f) );
            entityManager.SetSharedComponentData(ent, new RenderMesh 
            
                mesh = theMesh, material = theMaterial
            );
        
        eArray.Dispose();
    


非常感谢您抽出宝贵的时间

答案
EntityArchetype eArch =  
    entityManager.CreateArchetype(
        typeof(RenderMesh),
        typeof(Translation),
        typeof(LocalToWorld),
        typeof(MoveSpeedComponent),
        typeof(RenderBounds));

以上是关于Unity ECS自软件包更新以来未显示创建的实体的主要内容,如果未能解决你的问题,请参考以下文章

在自定义 Unity 包中使用 ECS

ET框架学习-ECS组件式编程的基本思想之于UNITY

unity ECS简介

Jenkins 测试趋势图未更新

自 SSL/TLS 证书更新以来,Django 应用程序未连接到 RDS

自更新以来,多边形未在小叶r图中绘制