我正在开始一个新的unity3d项目,我想知道如何旋转向前移动的宇宙飞船从y轴向左和右。
void Update(){
transform.position += transform.forward * Time.deltaTime * 10f;
if(input.Getkey(KeyCode.LeftArrow))
{
//code for rotate ;
}
}我希望当我按向左箭头键的时候,宇宙飞船从y轴向左旋转,直到箭头键松开。
发布于 2019-01-19 20:43:09
您可以使用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);
}发布于 2019-01-19 20:44:41
我真的不知道我是否理解了这个问题,但我认为这可能会对你有所帮助。
void Update () {
if (Input.GetKeyDown (KeyCode.Space)){
transform.Rotate (new Vector3(Time.deltaTime * 0, 1, 0));
}其中,第一个0表示x轴,数字1表示y轴,另一个0表示z轴
发布于 2019-01-19 20:48:50
您可能希望将速度和旋转速度声明为浮点数,这样以后就可以轻松地更改它们,但现在您可以这样做了。我左手和右手都做了。
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);https://stackoverflow.com/questions/54267132
复制相似问题