如何从渲染纹理中获取3D世界空间位置

时间:2016-04-26 07:33:31

标签: c# unity3d camera

我正在使用Render Texture制作 Side Map ,它运行正常,我已经完成了这些步骤。

  1. 一个主摄像机渲染场景。
  2. NGUI相机渲染GUI。
  3. 该GUI包含渲染纹理(minimap),使用GUI Camera渲染纹理上的场景。
  4. 但是现在我想进一步改进地图并希望它变得棘手。我想从渲染纹理点击点看世界空间位置。 有没有可用的方法可以从渲染纹理的特定点击点获取世界空间位置?

    如果我点击渲染纹理中的某处,那么我怎样才能获得3D世界空间中的点。

    例如:我在渲染纹理上单击了一个汽车对象。现在,我如何在3D世界空间中突出显示或获取它。?如何将2D渲染纹理点击位置转换为世界空间位置!

1 个答案:

答案 0 :(得分:4)

这假定了一些事情。

首先,我使用EventSystems获取鼠标点击。这不是必须的,它可以很容易地改变(虽然^^)。要正确设置,你需要在场景中使用.ignore-css{all:unset;} (如果你有一个UI,你可能已经有了一个)。

其次,您需要将EventSystem组件附加到主摄像头(玩家看到的摄​​像头)。

最后,在包含渲染纹理渲染器的GameObject(我使用简单的四边形)上,您应用以下脚本并分配相应的摄像头。

PhysicsRaycaster

编辑:上面可能有点冗长,如果您喜欢一个衬垫,可以轻松减少它,它只是为了展示它是如何工作的。也请只是认为这是一个概念证明,未经过全面测试