使用键盘在 z 轴上旋转相机
Rotate camera on z-axis using keyboard
我在我认为相对简单的问题上遇到了障碍。我想通过按 "Q" 和 "E" 键 "roll" 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 键时,绝对没有任何反应。为什么?
没有任何反应,因为您的代码可能没有附加到相机或它附加到另一个游戏对象。它不能附加到另一个游戏对象。它必须附加到相机,因为您正在引用 transform.rotation
这将影响脚本附加到的当前游戏对象。
Select 你的相机,然后将脚本拖到它上面。单击 "Play" 并按 Q 或 E 按钮。相机应该旋转。我真的向你推荐Unity项目tutorials。
我在我认为相对简单的问题上遇到了障碍。我想通过按 "Q" 和 "E" 键 "roll" 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 键时,绝对没有任何反应。为什么?
没有任何反应,因为您的代码可能没有附加到相机或它附加到另一个游戏对象。它不能附加到另一个游戏对象。它必须附加到相机,因为您正在引用 transform.rotation
这将影响脚本附加到的当前游戏对象。
Select 你的相机,然后将脚本拖到它上面。单击 "Play" 并按 Q 或 E 按钮。相机应该旋转。我真的向你推荐Unity项目tutorials。