【发布时间】:2017-08-29 10:08:28
【问题描述】:
我在一些我认为相对简单的问题上遇到了障碍。我想通过按“Q”和“E”键在 z 轴上“滚动”相机。
这是我编写的代码,附加到我的相机对象:
#pragma strict
var keyboardSensitivity : float = 10.0f;
private var rotZ : float;
private var localRotation : Quaternion;
function Start () {
rotZ = 0.0f;
}
function Update () {
if(Input.GetKey(KeyCode.Q)) {
rotZ += Time.deltaTime * keyboardSensitivity;
localRotation = Quaternion.Euler(0.0f, 0.0f, rotZ);
transform.rotation = localRotation;
}
if(Input.GetKey(KeyCode.E)) {
rotZ -= Time.deltaTime * keyboardSensitivity;
localRotation = Quaternion.Euler(0.0f, 0.0f, rotZ);
transform.rotation = localRotation;
}
}
据我所知,这应该是所需要的。但是当我按下 Q 或 E 键时,绝对没有任何反应。为什么?
【问题讨论】:
-
请不要说“什么都没发生”。这段代码甚至不应该编译,因为没有声明
localRotation。值得注意的是,Unityscript 已停产。您可能想要切换到开始询问 C# 问题。 -
我说“什么都没有发生”,因为实际上什么都没有发生。当我问这个问题时,我忘了复制
localRotation,但代码肯定编译得很好。我使用 Unityscript 作为个人偏好,我不认为不使用 C# 是我现在面临的问题的原因,但我会在以后的问题中记住这一点。 -
我看到有人在这里发布了一个甚至无法编译的代码。所以我认为它就是其中之一。我提到 C# 作为您未来问题的通知。
标签: unity3d rotation unityscript