天天看點

Unity3D Dots 批量建立實體

1.拿到EntityManager 和 GameObjectConversionSettings

2.通過GameObjectConversionUtility.ConvertGameObjectHierarchy 将需要轉換為實體的預制體轉換為Entity

3.将Entity Instantiate 到EntityManager 中

具體代碼如下

public class ConvertToEntityFactory : MonoBehaviour
{
    private EntityManager mEntityManager = null;

    private GameObjectConversionSettings mSetting = null;
    [SerializeField]
    private GameObject _NeedConvertToEntityGameoObject;

    [SerializeField] private int sum;
    // Start is called before the first frame update
    void Start()
    {
        mEntityManager = World.DefaultGameObjectInjectionWorld.EntityManager;
        mSetting = GameObjectConversionSettings.FromWorld(World.DefaultGameObjectInjectionWorld, null);
        Entity needToEntity=   GameObjectConversionUtility.ConvertGameObjectHierarchy(_NeedConvertToEntityGameoObject, mSetting);
        for (int i = 0; i < sum; ++i)
        {
            Entity entity = mEntityManager.Instantiate(needToEntity);
            // 轉換完成
        }
               World.DefaultGameObjectInjectionWorld.EntityManager.DestroyEntity(needToEntity);
    }

  

           

繼續閱讀