首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Unity3D实例-功能-移动】角色移动-通过WSAD(CharacterController方式)

【Unity3D实例-功能-移动】角色移动-通过WSAD(CharacterController方式)

原创
作者头像
谷宇
发布2025-07-30 13:54:57
发布2025-07-30 13:54:57
4710
举报
文章被收录于专栏:Unity3D游戏开发Unity3D游戏开发

今天,我们就来聊聊如何在Unity中使用CharacterController组件,让角色能够灵活移动,在游戏世界里像风一样自由奔跑吧。

废话不多说,走,让我们马上来一探究竟!

目录:

1.准备模型

2.动画的处理

3.为角色添加CharacterController组件

4.编写移动功能的脚本

5.测试和运行

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

一.准备模型

这里我已经搞定了模型和动画,都准备好啦!要是有小伙伴还不太明白怎么操作,可以去看看我之前发的那个“导入模型”的视频,视频的链接我会放在文章最后,点击连接打开在我的抖音或者其他平台连接的个人主页上能找到。好,我们先来第一步,把主角拖到我们的开发场景里去。

二.动画的处理

1.刚弄进来的动画可能得调调设置。我们先选中那个动画,然后点一下“Rig”,接着把站立和跑步的动画类型改成“人形”(Humanoid)的,这样就能更贴合角色的动作了。

2.接下来,我们得把跑步动画挑出来,然后点选“Animation”这个选项。记得把那个循环播放(Loop Time)的勾给打上,这样动画就能无限循环播放了。

3.我们先在Assets文件夹里头新建一个空文件夹,给它起个名字叫做“Animation Controllers”,当然啦,你也可以按自己的喜好来命名。这个文件夹就是用来放动画控制器的。

4.在Assets文件夹里,用鼠标右键点一下,然后找到“Animation Controllers”。接着点一下“Create”,在弹出的菜单里选择“Animator Controller”,这样就能创建一个新的动画器了。

5.选好你刚刚创建的Animator Controller,然后按住鼠标左键,把它拖拽到我们的主角模型上面去。这样就能将动画控制器应用到角色上了。

6.双击打开你建好的那个动画器。然后,把我们准备好的“站立动画”和“跑步动画”拖进去。这样就能在动画器里设置这些动画了。

7.现在我们来设置动画之间的过渡。分别选中“站立动画”和“跑步动画”,然后右键点击它们,从弹出的菜单里选择“Make Transition”。这样就能创建一个动画过渡了,也就是让角色可以从站立状态切换到跑步状态,反过来也行。

8.接着为“站立动画”和“跑步动画”创建动画过渡条件

首先,得给动画创建一个布尔变量,这个变量就是用来控制我们啥时候切换动画的。

接下来,选中动画之间的过渡线,然后给这条线添加上刚才创建的变量。设置一下,当Run变量是true的时候,角色就切换到跑步动画;当Run变量是false的时候,角色就变回站立状态。

最后,记得把那个“Has exit time”(动画退出时间)的勾去掉。因为我们需要的是实时切换动画,不需要设置退出时间。

三.为角色添加CharacterController组件

我们先选中角色,然后给角色加上一个“CharacterController”组件。这个组件是用来控制角色移动和碰撞检测的。加上组件之后,我们得调整一下它的参数,主要是那个碰撞框,要让它尽量贴近角色的模型,这样碰撞检测才能更准确。

3.实现移动功能的代码

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

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

四.测试和运行

通过案例测试与运行,成功通过CharacterController组件的SimpleMove函数实现角色移动。

【Unity3D实例-功能-移动】角色移动-通过WSAD(CharacterController方式)

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

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

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

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

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