gpt4 book ai didi

unity3d - 在 Unity 2d 中使用坐标系和游戏屏幕?

转载 作者:行者123 更新时间:2023-12-03 23:28:21 35 4
gpt4 key购买 nike

所以我在 x/y 坐标系对我来说有意义的其他平台上开发了游戏。左上角代表游戏画面,坐标为 (0,0),右下角为 (width,height)。现在我正在尝试跳转到 Unity 2d,但我无法理解游戏屏幕是如何工作的。如果我在屏幕上有一个背景对象和一个角色对象,当我围绕他的 x 和 y 值移动角色时,他的 x 和 y 值在 -3 和 3 之间变化......非常小的坐标并且它与我设置的游戏分辨率不匹配( 1024x768)。有没有很好的教程来理解 Unity 中的游戏网格?或者谁能​​解释我如何才能完成我想做的事情?

最佳答案

Unity中有三种坐标系:屏幕坐标、 View 坐标和世界坐标。
世界坐标 :考虑一下场景中物体的绝对定位,使用“点”。您可以选择让单位表示您想要的任何长度,例如 1 个单位 = 10 米。屏幕上实际显示的内容取决于相机的放置位置和方向。
查看坐标 :给定摄像机视口(viewport)中的坐标。视口(viewport)是观察世界的假想矩形。这些坐标是比例坐标,范围从 (0,0) 到 (1,1)。
屏幕坐标 :表示设备屏幕上位置的实际像素坐标。
请注意,无论使用哪个相机查看,任何给定对象的世界坐标始终相同,而 View 坐标取决于所使用的相机。屏幕坐标还取决于设备的分辨率和相机 View 在屏幕上的位置。
“Camera”对象提供了几种方法来在这些不同的坐标系之间进行转换,例如“ScreenToViewportPoint”“ScreenToWorldPoint”等。
示例:将对象放在屏幕左上角

    float distanceFromCamera = 10.0f;
Vector3 pos = Camera.main.ScreenToWorldPoint (new Vector3 (0, Camera.main.pixelHeight, distanceFromCamera));

transform.position = pos;
ScreenToWorldPoint 函数将 Vector3 作为参数,其中 x 和 y 表示屏幕上的像素位置(0,0 是左下角),z 分量表示与相机的所需距离。无限数量的 3D 位置可以映射到相同的屏幕位置,因此您需要提供此值。
只需确保所需位置位于相机的剪辑区域内即可。此外,您可能需要为对象选择合适的轴心,具体取决于您希望对象的哪个部分位于左上角的中心。

关于unity3d - 在 Unity 2d 中使用坐标系和游戏屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21937544/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com