【发布时间】:2013-11-21 08:30:03
【问题描述】:
问题是:
我已经创建了地形,我需要使用相机飞越地形。我添加到相机“鼠标注视”脚本,刚体:usegravity - 未选中,我在更新方法中添加了我的代码:
float vert = Input.GetAxis("Vertical");
float hor = Input.GetAxis("Horizontal");
if (vert != 0)
{
if (!Physics.Raycast(this.transform.position, this.transform.forward, 5))
{
transform.Translate(Vector3.forward * flySpeed * vert);
}
else
{
transform.Translate(Vector3.up * flySpeed * vert);
}
}
if (hor != 0)
{
if (!Physics.Raycast(this.transform.position, this.transform.forward, 5))
{
transform.Translate(Vector3.right * flySpeed * hor);
}
else
{
transform.Translate(Vector3.up * flySpeed* hor);
}
}
if (Input.GetKey(KeyCode.E))
{
transform.Translate(Vector3.up * flySpeed);
}
else if (Input.GetKey(KeyCode.Q))
{
Vector3 v = Vector3.down * flySpeed;
if (!Physics.Raycast(this.transform.position, this.transform.forward, 5))
{
transform.Translate(v);
}
}
但有时我会下降 - Q - 相机穿过地形。为什么? 如果您在地形上尽可能低地向前移动相机并且相机不会穿过它,那么它看起来也很丑 - 它开始跳跃。还有为什么?
【问题讨论】: