El artículo se publicó por primera vez en el blog: https://mwhls.top/4810.html .
No hay error de imagen/formato/para actualizaciones posteriores, consulte la primera página.
Para obtener más actualizaciones, visite mwhls.top
. Puede dejar un mensaje con preguntas o críticas. Los mensajes privados no serán respondidos.
Resumen: Registros de Unity
Resumen: después de implementar la generación del mapa Tilemap, cargue Tiles según las palabras clave.
- Para guardar un mapa, primero debe poder cargar el mapa según las palabras clave en lugar de arrastrarlo y arrastrarlo en el inspector, por lo que el primer paso es cargar archivos locales según la ruta.
Sistema de Activos Direccionables (fallido)-2023/08/13-2023/08/14
- Utilice el sistema de activos direccionables para la carga dinámica de mapas.
- Recursos Relacionados:
- Pero lo intenté de muchas maneras, pero no pude cargar la base de mosaicos y luego dibujar en el mapa de mosaicos.
- El siguiente código puede cargar el prefabricado correctamente. Después de la ejecución, habrá un montón de prefabricados en el inspector, pero se informará un error al dibujar el mapa de mosaicos.
- Cuando se usa Tilemap para dibujar mosaicos, el contenido del inspector no cambiará, el principal problema debería ser que
GameObject tilePrefab = handle.Result;
solo se puede usarGameObject
pero no se puede usarTileBase
.
async void place_tiles(Tilemap tilemap, ArrayList pos_array){
AsyncOperationHandle<GameObject> handle = Addressables.LoadAssetAsync<GameObject>("Assets/ResourcesAddressable/Prefab/Block/SoilBlock.prefab");
await handle.Task;
GameObject tilePrefab = handle.Result;
GameObject instantiatedTile = Instantiate(tilePrefab);
TileBase tile = instantiatedTile.GetComponent<TileBase>();
foreach (Vector3Int pos in pos_array){
tilemap.SetTile(pos, tile);
}
}
Recursos cargados-2023/08/14
- En realidad, este es mi plan hace cinco meses.
- Pero ahora que tengo GPT puedo preguntar y me recomendó Addressable, que se ve muy bien, así que primero escribí la solución anterior.
- Como se muestra en el código siguiente, cargué el activo en lugar de la casa prefabricada y se implementó en solo dos líneas.
- La ruta real es "Assets\Resources\Tilemap\Block\Soil/1_GrassSoilBlock.asset", omita los recursos y su prefijo y omita la extensión del archivo.
- Utilice direccionable para cargar, ya sea activo o prefabricado, devuelve
GameObject
el tipo y no puedo encontrarTileBase
una manera de convertirlo.
string tile_path = "Tilemap/Block/Soil/1_GrassSoilBlock";
TileBase tile = Resources.Load<TileBase>(tile_path);