You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 12:42:38