首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Unity3D实例-功能-下蹲】角色下蹲(二)穿越隧道

【Unity3D实例-功能-下蹲】角色下蹲(二)穿越隧道

原创
作者头像
谷宇
发布2025-08-12 21:28:01
发布2025-08-12 21:28:01
1850
举报
文章被收录于专栏:Unity3D游戏开发Unity3D游戏开发

在3D 游戏关卡里,低矮隧道往往是设计者的“隐形空气墙”——角色稍不留神就会穿模卡死。本文演示如何基于 CharacterController 实现“一键下蹲 + 实时碰撞检测”,让角色贴地滑入隧道、起身无缝恢复,彻底告别穿模烦恼!

为了避免篇幅冗长,关于下蹲功能将会拆分成三篇文章进行连载,手把手详细带您一起实现一个完整的下蹲功能。首篇文章分享下蹲功能的实现方式。次篇文章,我将会解决下蹲后,角色穿越山洞或者隧道时,不会出现穿模的现象。末篇文章,我将会细讲动画配置,从蹲下、蹲着、蹲着行走,一直到站起来的动画组合实现,让角色灵活起来。

目录:

1.下蹲功能功能

2.搭建隧道

3.编写下蹲检测代码

4.测试与运行

--------------------

一.下蹲功能功能

在首篇文章《【Unity3D实例-功能-下蹲】角色下蹲(一)功能实现》,介绍了如何实现角色的下蹲功能。如果有不懂的小伙伴可以去查看我的博客文章。

原创链接:https://biguyu.top/article/detail?code=1952754434354319360

二.搭建隧道

1.点击鼠标右键,选择“Create Empty”,创建一个空物体(我这里命名为“Cave”)。

2.然后在空物体下,点击鼠标右键,选择“3D Object” -> 点击“Cube”,分别创建一个Cube作为顶部,两个Cube作为左右墙。

3.选中隧道的父节点(就是刚创建的“空物体”),在“Inspector”菜单下,点击“Layer”,为隧道创建一个障碍物的Layer(我这里也是命名为“Cave”),用于后续的实时碰撞检测。

三.编写下蹲功能代码

1.在Assets 目录中新建专用 的Scripts 文件夹(命名可自定义规范),并于其内创建对应功能 C# 脚本;完成后,将该脚本以组件形式拖放至场景角色实例,完成依赖注入与初始化。

2.实现下蹲 + 实时碰撞检测的代码

代码、模型和动画都已经上传到我的个人博客了,大家可以自行下载。

原创来源于-谷宇博客:https://www.biguyu.top/home

四.测试与运行

亲测过程:进入 Play Mode 后,持续按压空格键,角色中心高度由 1.6 m 降至 1 m,CharacterController 的碰撞盒同步收缩;大家可以看到动态图片中,角色进入隧道后,松开空格键,角色控制器的框框被隧道顶盖阻挡无法直立,直至退出隧道后方可恢复站立,验证实时高度检测与层掩码过滤成功防止穿模。(在文章《【Unity3D实例-功能-下蹲】角色下蹲(三)动画配置》中,实现完整的动画效果)

【Unity3D实例-功能-下蹲】角色下蹲(二)穿越隧道

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档