unity相机跟随人物移动

本文介绍了一种简单的方法,用于实现在Unity中让相机跟随指定角色移动的效果。通过计算初始位置差并持续更新相机位置,使得相机始终保持以角色为中心。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用简单方法实现相机更随人物移动,即相机视角以人物为中心固定。这个脚本挂在相机上:

using UnityEngine;
using System.Collections;

public class CameraFollow : MonoBehaviour
{
    public Transform RoleTarget;//要跟随的人物
    private Vector3 Dis;//相机和人物位置差
    
    void Start()
    {
        Dis = RoleTarget.position - this.transform.position;//初始位置差

    }

    void Update()
    {
        this.transform.position = RoleTarget.position - Dis;//人物位置和Dis来确定相机的位置
    }
}


### 实现 Unity相机仅沿 X 轴跟随角色移动 为了使摄像机只沿着 X 轴方向跟踪角色,可以编写一个简单的脚本来控制摄像机的位置更新逻辑。此方法不依赖 Cinemachine 的高级功能,而是通过直接操作 Transform 组件来达到目的。 ```csharp using UnityEngine; public class CameraFollowOnX : MonoBehaviour { public Transform target; // 角色的目标Transform组件 private Vector3 offset; void Start() { // 记录初始偏移量 offset = transform.position - new Vector3(target.position.x, transform.position.y, transform.position.z); } void LateUpdate() { if (target != null) { float newXPosition = target.position.x + offset.x; // 只改变位置的X分量 transform.position = new Vector3(newXPosition, transform.position.y, transform.position.z); } } } ``` 上述代码定义了一个名为 `CameraFollowOnX` 的类[^1]。这个类继承自 MonoBehavior,并实现了两个主要的方法:`Start()` 和 `LateUpdate()`。在 `Start()` 方法里初始化了摄像机相对于目标对象(即角色)的起始位移向量;而在 `LateUpdate()` 函数中,则是在每一帧渲染之后执行的操作——它会获取当前角色的新 X 坐标并应用到摄像机上,保持 Y 和 Z 方向上不变。 需要注意的是,在创建场景时要确保将该脚本附加到了主摄像机 GameObject 上,并且指定了确的 Target 字段指向玩家角色的对象。 对于更复杂的项目或希望利用更多 Cinemachine 功能的情况,也可以考虑使用 Cinemachine 来构建类似的机制,不过这通常涉及到更多的配置工作以及可能需要额外编写的辅助脚本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值