Unity C#中如何让相机置于飞机旁并实现跟随功能
相机旁侧跟随飞机的修正方案
问题分析
你的代码存在两个核心问题,导致相机无法实现旁侧跟随效果:
- 强制锁定飞机旋转:
Update方法里的plane.transform.rotation = Quaternion.Euler(new Vector3(0,0,-90));会固定飞机朝向,让它无法正常转向,相机的跟随逻辑也就失去了意义。 - 使用世界空间偏移:直接给飞机世界坐标叠加固定偏移量,当飞机转向时,偏移不会跟随飞机的局部方向变化,相机自然无法保持在飞机旁侧的位置。
修正后的代码
public class FollowPlayerX : MonoBehaviour { public GameObject plane; // 此偏移基于飞机局部坐标系,示例数值对应飞机右侧+上方+后方位置 private Vector3 offset = new Vector3(5, 2, -10); void LateUpdate() { // 将局部空间偏移转换为世界坐标,确保相机始终跟随飞机旁侧 transform.position = plane.transform.TransformPoint(offset); // 让相机始终看向飞机,保持视角聚焦 transform.LookAt(plane.transform); } }
关键改动说明
- 移除了强制锁定飞机旋转的代码,让飞机可以正常移动和转向。
- 使用
TransformPoint方法将局部空间的偏移量转换为世界坐标,确保飞机转向时,相机能始终保持在其旁侧相对位置。 - 将
Update替换为LateUpdate,保证相机在飞机移动逻辑更新后再计算位置,避免画面抖动。 - 添加
LookAt方法,让相机始终朝向飞机,维持合理的跟随视角。
内容的提问来源于stack exchange,提问作者righthere
相关产品推荐
相关产品推荐

