Files
Obsidian_Unity/项目学习/ShootGame.md
T
2026-05-03 14:06:26 +08:00

1.6 KiB

本文旨在记录射击游戏开发过程中遇到的问题,并提供解决方案

面朝一个方向的方法

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,则可以被碰撞可以作为墙壁,但是没有物理效果

射线系统