Unity 切换第一人称和第三人称

本文详细介绍了如何在Unity中通过Cinemachine实现第三人称视角的切换,包括创建Player对象、安装Cinemachine、配置自由视角摄像机、编写相机脚本和切换人称脚本,以及制作准心等内容。

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

切换视角

★ 切换视角教程:【Unity教程搬运】11分钟完成第三人称移动 - Unity教程

★ 视频演示:自学Unity 切换第一人称和第三人称视角

★ 项目下载: https://drive.aerwen.net/d/aerwen/unity%E6%BA%90%E7%A0%81/ChangePerson/ChangePerson.zip

★ 脚本下载:

切换第一人称和第三人称:https://drive.aerwen.net/d/aerwen/unity%E6%BA%90%E7%A0%81/ChangePerson/Scripts/ChangeCam.cs

第三人称下切换视角:https://drive.aerwen.net/d/aerwen/unity%E6%BA%90%E7%A0%81/ChangePerson/Scripts/ThirdPersonCam.cs

要点:
1. 创建 Player 对象
  • 创建一个空对象,命名为 Player

  • Player 对象添加刚体组件(Rigidbody

    1. Interpolate 属性中选择 Interpolate 选项

    2. Collision Detection 属性中选择 Continuous 选项

2. 创建子对象和眼睛
  • Player 对象下创建一个胶囊体(capsule),命名为 PlayerObj

  • 创建一个空对象,命名为 orientation

  • Player 对象下创建一个立方体(cube),作为玩家的眼睛

  • 为这些对象添加颜色材质

3. 安装 Cinemachine
  • 打开 Package Manager,选择 Unity Registry

  • 安装 Cinemachine

4. 创建自由视角摄像机
  • Cinemachine 中选择 Create FreeLook Camera(用于控制主相机)

5. 配置自由视角摄像机
  • Inspector 窗口中,将 玩家对象 拖拽到 Follow对象LookAt对象

  • 针对 CinemachineFreeLook 组件,设置以下参数:

    1. Lens 中,将 Field Of View 设置为 50

    2. Axis Control 中,将 Y AxisInvert Axis 设置为 true,X AxisInvert Axis 设置为 false

    3. Orbits 中,将 Binding Mode 设置为 "World Space",并设置下面图片的参数👇

    4. Rig中 关闭所有 Dead Zone WidthDead Zone Height 全部设置为 0

6. 相机脚本
  • 根据相机对准的方向旋转玩家的朝向

    1. 创建变量

    2. 编写脚本

7. 制作准心

【unity游戏基础篇】08.第三人称游戏中用UI制作一个准星,以及如何用photoshop画准星

unity最新版本的Text(TMP)UI文本怎么显示中文_unity text 中文-CSDN博客

8. 配置其他风格的相机
  • 添加以下变量

  • 创建一个 CombatLookAt 对象在玩家的跟前

  • 修改脚本如下👇

  • 复制一个第三人称的 cinemachine 相机对象(ThirdPersonCam),并命名为 CombatCam ,先取消激活ThirdPersonCam, 并修改如下设置

    • LookAt 选项修改成刚才创建的 CombatLookAt 对象

    • Vertical Fov 选项修改 45

    • Oribits 选项修改如下图👇

    • Rig选项中,所有 阻尼(Damping)设置为 0

  • 复制一个第三人称的 cinemachine 相机对象(ThirdPersonCam),并命名为 TopDownCam ,先取消激活ThirdPersonCam, 并修改如下设置

    • Oribits 选项修改如下图👇

9. 切换视角脚本
  • 在外部声明 各个相机 变量

  • 编写切换方法

  • 使用切换方法

10. 切换人称脚本
  • 创建一个对象,装着 第三人称主相机,和第一人称主相机

  • 创建一个ChangeCam的脚本,挂载到CameraHolder

    • 声明变量

    • 编写脚本

Unity中实现第一人称(FPV, First Person View)第三人称(TPV, Third Person View)之间的切换,通常涉及到以下几个步骤: 1. **设置基本角色控制器**:首先,你需要创建一个基础的角色控制器,比如`CharacterController`或自定义的脚本,用于控制角色移动。 2. **添加相机组件**:为每种视点模式分别添加相机。第一人称可以有一个跟随头部移动的相机(`FirstPersonCamera`),第三人称则需要一个主摄像机并保持固定距离(`ThirdPersonCamera`)。 3. **状态管理**:创建一个状态机或者使用`Switch`等条件语句,来控制当前的视点模式。你可以创建一个枚举或者布尔变量来表示是第一人称还是第三人称。 4. **切换函数**:编写两个函数,一个用于切换第一人称,另一个切换第三人称。在第一人称模式下,将玩家设置为跟随主角的眼睛,而在第三人称模式下,调整摄像机的位置旋转。 5. **绑定事件**:关联游戏中的交互动作(如点击按钮、键盘快捷键)到相应的切换函数。例如,玩家按下某个键时执行切换操作。 6. **动画视觉效果**:确保角色在切换时有适当的动画效果,并且UI元素(如视角图标)会随着视图模式的变化而更新。 **示例代码片段(伪代码)**: ```csharp public class CameraManager : MonoBehaviour { public bool IsThirdPerson { get; private set; } public CharacterController controller; public ThirdPersonCamera thirdPersonCam; public FirstPersonCamera firstPersonCam; void Start() { IsThirdPerson = true; // 初始为第三人称 } void SwitchToThirdPerson() { if (IsThirdPerson) return; // 第一人称逻辑... controller.transform.position = new Vector3(0, 1.6f, 0); // 高度调整 IsThirdPerson = true; thirdPersonCam.gameObject.SetActive(true); firstPersonCam.gameObject.SetActive(false); } void SwitchToFirstPerson() { if (!IsThirdPerson) return; // 第三人称逻辑... controller.transform.position = Vector3.zero; // 恢复到默认位置 IsThirdPerson = false; thirdPersonCam.gameObject.SetActive(false); firstPersonCam.gameObject.SetActive(true); } // 键盘绑定示例 void Update() { if (Input.GetKeyDown(KeyCode.T)) SwitchToThirdPerson(); else if (Input.GetKeyDown(KeyCode.F)) SwitchToFirstPerson(); } } //
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值