### 本文旨在记录射击游戏开发过程中遇到的问题,并提供解决方案 ##### 面朝一个方向的方法 1.transform.forward 2.transform.LookAt 3.Quaternion.LookRotation 第一个调整方法transform.forward=dir,修改我们的面朝方向的向量为dir,需要注意的是这里通常传入的是一个向量 第二个方法transform.LookAt通常用来看向一个点,这就和上面的transform.forward=dir有所不同,第一种方法是向量,而Lookat通常望向一个点. 第三种方法Quaternion.LookRotation,计算出来一个旋转,将这个旋转赋值给transform.forward就可以实现面向,LookAt内部就是调用了本方法. ##### Transform方法的坐标系紊乱 transform.Translate方法用来控制物体的移动,该方法不会考虑物理,只负责移动,注意该方法默认是在本地坐标系下运行的,如果需要在世界坐标系下完成操作,则需要在参数中添加. ##### 物体移动的方法 - transform.Translate() - 设置transform.position+= - rb.AddForce() - 设置rb.velocity - rb.MovePosition() - CharacterController.Move() 在不考虑物理的情况下可以使用方法一方法二 在考虑物理的情况下可以根据情况选择方法三四五 3D角色可以使用CharacterController ##### 物理系统 Rigidbody控制物体的物理行为[[RigidBody]] Collider控制物体的形状[[碰撞器]] Material控制物理材质 如果只有Rigidbody则该物体受到重力等各种物理效果,但是没有物体形状,不会发生碰撞,不会被射线检测到 如果只有Collider,则可以被碰撞可以作为墙壁,但是没有物理效果 ##### 射线系统