首页 > 解决方案 > 如何在Unity中转换坐标?

问题描述

我有一个带有坐标的 JSON 文件,其中 (0.0) 位于左上角(第一张图片)。在 Unity 中(0.0)位于屏幕的中心(第二张图片)。我正在寻找一种可以将文件坐标转换为 Unity 坐标的方法。

在此处输入图像描述

所以我的问题是如何将第一张图片的坐标转换为统一坐标?

例如在位置 (2.3) 我有字母“A”。如何将其转换为与 Unity 匹配?

我已经尝试过Camera.main.ScreenToWorldPoint,但是对于所有输入,我总是得到相同的结果。

这就是我得到的: 在此处输入图像描述

标签: unity3dcoordinates

解决方案


我能想到的最简单的方法是GameObject在你想去的地方留一个空,0,0然后计算相对于那个的位置GameObject

public class CoordinateAdjustment : MonoBehaviour
{
    public GameObject positionAdjustmentGameObject;
    public float cellSize = 1f; // Set to 1f for this example can change to your needs

    public Vector2 GetPosition(int row, int column)
    {
        Vector2 position = new Vector2
        (
            positionAdjustmentGameObject.transform.position.x + (column * cellSize),
            positionAdjustmentGameObject.transform.position.y + (row * cellSize)
        );
        return position;
    }
}

可能需要一些改进,但会起作用。


推荐阅读