public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem) { int len = _size.x * _size.y; var buffer = dstManager.AddBuffer <MapTilesBuffer>(entity); buffer.ResizeUninitialized(len); unsafe { UnsafeUtility.MemClear(buffer.GetUnsafePtr(), buffer.Length * UnsafeUtility.SizeOf <MapTilesBuffer>()); } dstManager.AddComponent <Map>(entity); dstManager.AddComponentData <MapSize>(entity, _size); var playerPrefab = _playerPrefab == null ? Entity.Null : conversionSystem.GetPrimaryEntity(_playerPrefab); var monsterPrefabs = new NativeList <Entity>(Allocator.Temp); var itemPrefabs = new NativeList <Entity>(Allocator.Temp); foreach (var goPrefab in _monsterPrefabs) { monsterPrefabs.Add( conversionSystem.GetPrimaryEntity(goPrefab)); } foreach (var item in _itemPrefabs) { itemPrefabs.Add(conversionSystem.GetPrimaryEntity(item)); } if (_genSettings.Seed == 0) { _genSettings.Seed = (uint)UnityEngine.Random.Range(1, int.MaxValue); } var tiles = dstManager.AddBuffer <MapTileAssetsBuffer>(entity); // Each index of the buffer should map to it's corresponding "tile type" /// <seealso cref="MapTileType"/> tiles.Add(_wallTile.ToTerminalTile()); tiles.Add(_floorTile.ToTerminalTile()); GenerateMap.AddToEntity(dstManager, entity, _genSettings, playerPrefab, monsterPrefabs, itemPrefabs); }