我正在开始一个新的unity3d项目,我想知道如何将向前移动的太空船从y轴旋转到左右。
void Update(){
transform.position += transform.forward * Time.deltaTime * 10f;
if(input.Getkey(KeyCode.LeftArrow))
{
//code for rotate ;
}
}
我希望当我按向左箭头键时,太空飞船将从y轴向左旋转,直到释放方向键。
答案 0 :(得分:1)
您需要将速度和旋转速度声明为浮点数,以便以后可以轻松更改它们,但是您就可以了。我做了左右。
float speed = 10.0f;
float rotateSpeed = 2.0f;
void Update(){
transform.position += transform.forward * Time.deltaTime * speed;
if(Input.GetKeyDown(KeyCode.LeftArrow))
{
//code for rotate
transform.Rotate(vector3.left * Time.deltaTime * rotateSpeed);
}
else if(Input.GetKeyDown(KeyCode.RightArrow))
{
transform.Rotate(vector3.right * Time.deltaTime * rotateSpeed);
}
}
如果要相对于世界旋转飞船,请使用:
transform.Rotate(vector3.left * Time.deltaTime * rotateSpeed, Space.World);
答案 1 :(得分:0)
您可以使用Transform.Rotate(Vector3)。
void Update()
{
if (Input.GetKey(KeyCode.LeftArrow))
transform.Rotate(transform.forward * 3);
if (Input.GetKey(KeyCode.RightArrow))
transform.Rotate(transform.forward * -3);
}
答案 2 :(得分:0)
我真的不知道我是否理解这个问题,但是我认为这可能对您有所帮助。
void Update () {
if (Input.GetKeyDown (KeyCode.Space)){
transform.Rotate (new Vector3(Time.deltaTime * 0, 1, 0));
}
第一个0表示x轴,数字1表示y轴,其他0表示z轴