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

34 lines
1.6 KiB
Markdown

### 本文旨在记录射击游戏开发过程中遇到的问题,并提供解决方案
##### 面朝一个方向的方法
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,则可以被碰撞可以作为墙壁,但是没有物理效果
##### 射线系统