Unity Record 4.1 - Almacenamiento - Carga de mosaicos según palabras clave

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 usar GameObjectpero no se puede usar TileBase.
        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 GameObjectel tipo y no puedo encontrar TileBaseuna manera de convertirlo.
    string tile_path = "Tilemap/Block/Soil/1_GrassSoilBlock";
    TileBase tile = Resources.Load<TileBase>(tile_path);

Supongo que te gusta

Origin blog.csdn.net/asd123pwj/article/details/132394313
Recomendado
Clasificación