Control de código TileMap relacionado

1. Limpia el mapa de mosaicos

map.ClearAllTiles();

2. Obtenga la cuadrícula de coordenadas especificada

        TileBase tmp = map.GetTile(Vector3Int.zero);
        print(tmp);

3. Configurar para eliminar mosaicos

        map.SetTile(new Vector3Int(0, 2, 0), tileBase);

        map.SetTile(new Vector3Int(1, 0, 0), null);

4. Reemplazar azulejos

map.SwapTile(tmp, tileBase);

5. Convertir coordenadas mundiales en coordenadas de cuadrícula.

posición de la cámara 

Convertir coordenadas de pantalla a coordenadas mundiales

Vector3 mousePos = Input.mousePosition;
Vector3 screenToWorld = Camera.main.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, 10));

El 10 en el eje Z corresponde a la posición de la cámara.

Convertir coordenadas mundiales a coordenadas de cuadrícula

    void Update()
    {
        //按下鼠标左键
        if (Input.GetMouseButtonDown(0))
        {
            //得到鼠标在屏幕的坐标
            Vector3 mousePos = Input.mousePosition;
            //屏幕坐标转世界坐标
            Vector3 screenToWorld = Camera.main.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, 10));
            Debug.Log(screenToWorld);
            //世界坐标转屏幕坐标
            Vector3Int gridPosition = grid.WorldToCell(screenToWorld);
            //将鼠标所指位置更换tile
            map.SetTile(gridPosition, tb);
        }
    }

Efecto

Haga clic con el mouse

 

 

Supongo que te gusta

Origin blog.csdn.net/holens01/article/details/130913305
Recomendado
Clasificación