【发布时间】:2016-05-06 20:43:04
【问题描述】:
我尝试在 Unity 中实现对我的相机的简单控制。我成功地对按下的 w、a、s、d 做出反应并移动相机。我还想实现一个旋转(稍后使用鼠标旋转,但首先使用键 e 和 q 进行旋转)。我编写了这个脚本来更新我的相机,但问题是:如果你转身,我的键 w、a、s 和 d 的更新过程无法正常工作。 F.e.我想向左走,但我会向右走。我不知道如何解决这个问题。有人可以给我一个想法吗? 这是我的源代码。希望你能明白我的问题是什么。
float translation_v = -(Input.GetAxis ("Vertical")) * 4.0F * Time.deltaTime;
camera.transform.position += new Vector3 (0, 0, translation_v);
float translation_h = -(Input.GetAxis ("Horizontal")) * 4.0F * Time.deltaTime;
camera.transform.position += new Vector3 (translation_h, 0, 0);
float rotation = -(Input.GetAxis ("Rotate_Player")) * 4.0F * Time.deltaTime * 10F;
camera.transform.Rotate(new Vector3(0F, rotation, 0F));
Vector3 pos = camera.transform.position;
pos.y = terrain.GetComponent<Terrain>().SampleHeight(camera.transform.position)+1;
camera.transform.position = pos;
【问题讨论】:
-
这是在 SO i.stack.imgur.com/uqJeW.png 上接受答案的方法 试试你的其他两个问题。我向你保证它有效。完成此操作后,请回复我,我会告诉您为什么您的代码无法正常工作。否则,祝你好运。
标签: unity3d