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

简介: 本文介绍如何在Unity3D中实现角色下蹲功能,通过CharacterController组件实现一键下蹲与实时碰撞检测,避免角色穿越隧道穿模问题,提升游戏体验。

4.png

在3D 游戏关卡里,低矮隧道往往是设计者的“隐形空气墙”——角色稍不留神就会穿模卡死。本文演示如何基于 CharacterController 实现“一键下蹲 + 实时碰撞检测”,让角色贴地滑入隧道、起身无缝恢复,彻底告别穿模烦恼!
为了避免篇幅冗长,关于下蹲功能将会拆分成三篇文章进行连载,手把手详细带您一起实现一个完整的下蹲功能。首篇文章分享下蹲功能的实现方式。次篇文章,我将会解决下蹲后,角色穿越山洞或者隧道时,不会出现穿模的现象。末篇文章,我将会细讲动画配置,从蹲下、蹲着、蹲着行走,一直到站起来的动画组合实现,让角色灵活起来。

目录:

1.下蹲功能功能
2.搭建隧道
3.编写下蹲检测代码
4.测试与运行


一.下蹲功能功能

在首篇文章《【Unity3D实例-功能-下蹲】角色下蹲(一)功能实现》,介绍了如何实现角色的下蹲功能。如果有不懂的小伙伴可以去查看我的博客文章。
f222847b4c2a2a3662767a557f4af357.png
原创链接:https://biguyu.top/article/detail?code=1952754434354319360

二.搭建隧道

1.点击鼠标右键,选择“Create Empty”,创建一个空物体(我这里命名为“Cave”)。
2.然后在空物体下,点击鼠标右键,选择“3D Object” -> 点击“Cube”,分别创建一个Cube作为顶部,两个Cube作为左右墙。
a36790cc51a5227e06428aa6ad243017.png

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

三.编写下蹲功能代码

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

2.实现下蹲 + 实时碰撞检测的代码
代码、模型和动画都已经上传到我的个人博客了,大家可以自行下载。
原创来源于-谷宇博客:https://www.biguyu.top/home

四.测试与运行

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

4f55c890d6904f4ea7ef05fc1c60f1b2.gif

目录
相关文章
|
2月前
|
C# 图形学 开发者
【Unity3D实例-功能-镜头】俯视角
本文介绍了Unity中常用的俯视角镜头实现方法,涵盖模型添加、角色Tag设置、摄像机脚本编写及测试运行,帮助开发者快速掌握俯视角在策略与模拟类游戏中的应用技巧。
213 0
|
3月前
|
C# 图形学 开发者
【Unity3D实例-功能-移动】角色移动-通过WSAD(Rigidbody方式)
本文介绍了如何在Unity中使用Rigidbody组件实现角色自由移动,包括模型准备、组件添加、脚本编写与测试运行,帮助开发者快速掌握基础角色控制技巧。
165 0
|
2月前
|
SQL Java 数据库连接
Mybatis的批处理工具:MybatisBatchUtils功能全解
总而言之,MybatisBatchUtils 是 Mybatis 的一款强大工具,可以显著提高批量数据处理的效率,并确保事务的安全性。通过简化 API 的设计,使得开发者能够易于上手并利用 Mybatis 进行高效的数据库操作。正确使用 MybatisBatchUtils,必然能够在大数据量的场景下,给你的应用性能带来质的飞跃。
259 0
|
2月前
|
存储 缓存 算法
JVM
本课程深入讲解JVM虚拟机核心知识,涵盖类加载机制、运行时数据区、对象生命周期、垃圾回收算法及调优实战等内容,帮助开发者夯实Java底层原理,提升系统性能与故障排查能力,助力面试与实际项目应用。
|
2月前
|
边缘计算 监控 前端开发
《前端性能监控深解:从指标捕获到数据洞察的完整脉络》
本文深入剖析前端性能监控的完整脉络,从其对用户体验与业务增长的关键价值切入,解读加载、交互、视觉稳定性等核心性能指标,阐述利用原生API、开源库及自定义埋点的指标采集策略,探讨数据上报传输优化与分析洞察方法,还涉及实践中的兼容性、数据准确性等挑战及未来发展趋势,为理解前端性能监控提供全面且深入的视角。
|
2月前
|
机器学习/深度学习 人工智能 PyTorch
三周内转型AI工程师学习计划
3周AI转型计划:掌握数学、机器学习与深度学习基础,熟练使用Python、PyTorch/TensorFlow。完成2-3个CV/NLP项目,构建GitHub博客,强化LeetCode刷题与模拟面试。每日高效学习9小时,聚焦实战与面试准备,助力快速入行AI。
170 0
|
2月前
|
SQL 人工智能 自然语言处理
魔搭社区模型速递(8.2-8.8)
🙋魔搭ModelScope本期社区进展:📟2268个模型📁165个数据集;🎨78个创新应用📄 13篇内容
224 0
|
2月前
|
机器学习/深度学习 数据采集 人工智能
基于PAI-ChatLearn的GSPO强化学习实践
近期,阿里通义千问团队创新性提出了GSPO算法,GSPO 算法与其他 RL 算法相比,定义了序列级别的重要性比率,并在序列层面执行裁剪、奖励和优化。同时具有强大高效、稳定性出色、基础设施友好的突出优势。
|
10月前
|
网络协议 程序员
为什么TCP需要三次握手?一文讲透!
TCP三次握手是TCP协议建立连接的关键步骤,确保客户端和服务端同步状态并确认彼此的存在。过程分为三步:1) 客户端发送SYN包请求连接;2) 服务端回应SYN/ACK包确认收到并提供初始序列号;3) 客户端发送ACK包确认服务端的序列号,双方进入连接状态。此机制确保了双向通信的可靠性和资源的有效利用,避免了失效请求导致的问题。
|
12月前
|
开发框架 缓存 算法
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
777 0