Tilemap与世界坐标, 屏幕坐标之间的转换
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Tilemaps;
public class GameController : MonoBehaviour
{
public Grid grid_; // Tilemap的Grid组件
void Update()
{
if (Input.GetMouseButtonDown(0)) {
// 将鼠标点击的屏幕坐标转换为世界坐标
Vector3 wPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
// 将世界坐标转换为瓦片坐标
Vector3Int cellPos = grid_.WorldToCell(wPos);
// 由于是2D, 所以手动将瓦片的Z坐标改为0, 实际项目可以先查看瓦片的Z坐标值.
cellPos.z = 0;
Debug.Log(cellPos);
Debug.Log(grid_.CellToWorld(cellPos));
}
}
}
本文详细介绍了在Unity中如何实现Tilemap与世界坐标、屏幕坐标的相互转换,包括使用Camera.main.ScreenToWorldPoint()将屏幕坐标转换为世界坐标,以及通过Grid.WorldToCell()将世界坐标转换为Tilemap的瓦片坐标。
1万+

被折叠的 条评论
为什么被折叠?



