0

我有一个城市 3d 模型作为文件夹。该文件夹包括 .obj 文件、材质和纹理。

我尝试通过在路上行走来创建虚拟之旅。我将相机放在街道上。我的相机通过单击上下键来前进和后退。它通过单击左右键旋转 trun 和 left。我可以成功处理按键。

城市模型与地面的高度不同。它看起来像下图: 在此处输入图像描述

如果用户按下向上或向下键,我通过更新 transfrom.Translate data 仅更改 z 值:

float translation = Input.GetAxis("Vertical") * speed;
transform.Translate(0, 0, translation);

但是我的相机进入了黑线,我无法正常看到这座城市。我怎样才能避免下线(道路)?制作固体物体能解决我的问题吗?

4

1 回答 1

1

您可以采取几种方法。我建议在你的道路上添加一个网格对撞机,然后从你的对象的位置进行光线投射,向下朝向它。它看起来像:

RaycastHit hit;
float height = 1.0f;
if(Physics.Raycast(transform.positon, -Vector3.up, out hit))
{
    transform.position = Vector3(transform.position.x, hit.point.y + height, transform.position.z);
}
于 2016-04-07T07:38:33.003 回答