unity3d - 如何在Unity中转换坐标?
问题描述
我有一个带有坐标的 JSON 文件,其中 (0.0) 位于左上角(第一张图片)。在 Unity 中(0.0)位于屏幕的中心(第二张图片)。我正在寻找一种可以将文件坐标转换为 Unity 坐标的方法。
所以我的问题是如何将第一张图片的坐标转换为统一坐标?
例如在位置 (2.3) 我有字母“A”。如何将其转换为与 Unity 匹配?
我已经尝试过Camera.main.ScreenToWorldPoint
,但是对于所有输入,我总是得到相同的结果。
解决方案
我能想到的最简单的方法是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;
}
}
可能需要一些改进,但会起作用。
推荐阅读
- laravel - 如何在 laravel nova 管理面板中定义时间字段
- java - 如何在要测试的类中模拟抽象类方法
- swift - 领域迁移:将对象迁移到另一个对象
- php - 关于使用简单的 html dom 解析器将 HTML 标签存储为对象的问题
- regex - Perl 在文件的开头和结尾添加一对标签
- python - 无法在 Telegram API 中创建主题标签
- python - 如何根据数据框另一列中的条件找到列中的最小值?
- search - Youtube 儿童 API
- java - 使用 Gson get() 从 Json 获取值
- java - 如何使用 spring 集成实现 POST http 端点?