unity 控制物体移动的三种方法之美

匿名 (未验证) 提交于 2019-12-03 00:05:01

可以使按照指令物体移动的方法
一、常规方法

//四个方向         if (Input.GetKey(KeyCode.W))         {             transform.Translate(Vector3.forward*moveSpeed*Time.deltaTime);         }         if (Input.GetKey(KeyCode.S))         {             transform.Translate(Vector3.back * moveSpeed * Time.deltaTime);         }         if (Input.GetKey(KeyCode.A))         {             transform.Translate(Vector3.left * moveSpeed * Time.deltaTime);         }         if (Input.GetKey(KeyCode.D))         {             transform.Translate(Vector3.right * moveSpeed * Time.deltaTime);         }

二、使用unity自带的移动方式

float H = Input.GetAxis("Horizontal");         float V = Input.GetAxis("Vertical");         if (H!=0 || V!=0)         {             transform.Translate(new Vector3(H,0,V)*Time.deltaTime*moveSpeed,Space.World);         }         else         {            //没有移动         }

三、通过刚体控制移动(必须添加刚体)

//通过刚体控制物体移动,需要添加刚体         Vector3 moveForward = Vector3.zero;         if (Input.GetKey(KeyCode.W))         {             moveForward.z += 1;         }         if (Input.GetKey(KeyCode.S))         {             moveForward.z += -1;         }         if (Input.GetKey(KeyCode.A))         {             moveForward.x += -1;         }         if (Input.GetKey(KeyCode.D))         {             moveForward.x += 1;         }                  GetComponent<Rigidbody>().MovePosition(Quaternion.LookRotation(transform.forward)  * moveForward * moveSpeed * Time.fixedDeltaTime + transform.position);

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!