【发布时间】:2016-01-29 18:35:57
【问题描述】:
我目前正在尝试创建一个游戏,您可以通过“装箱”来选择单位(单击然后拖动以创建一个选择框)。但是,这些单位以 3D 编码并具有 3D 坐标,并且选择矩形在我的屏幕上为 2D。
现在我正在尝试在我的相机视图上将 3D 坐标转换为 2D 坐标,我知道:3D 项目的坐标、我的相机的坐标以及它正在查看的位置。谁能帮帮我?
【问题讨论】:
我目前正在尝试创建一个游戏,您可以通过“装箱”来选择单位(单击然后拖动以创建一个选择框)。但是,这些单位以 3D 编码并具有 3D 坐标,并且选择矩形在我的屏幕上为 2D。
现在我正在尝试在我的相机视图上将 3D 坐标转换为 2D 坐标,我知道:3D 项目的坐标、我的相机的坐标以及它正在查看的位置。谁能帮帮我?
【问题讨论】:
您可以使用 Viewport.Unproject() 方法来实现。
https://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.viewport.unproject.aspx
使用您要选择的模型位置作为 source Vector3 和您相机的 View 和 Projection 作为参数(您可以使用 Matrix. World 矩阵的标识)。
【讨论】: