角色控制器是unity中专门用来控制角色的组件(主要是运动相关),区别于直接用Transform或者RigidBody,CharacterController有着更好的效果,它拥有RigidBody的一些重要特性,但是又去掉了很多物理效果,这样可以避免诸如穿模,滑步,被撞飞或者将其他物体撞位移等情况。

其主要属性如下:

斜度限制代表的是角色可以走上的斜坡角度

每步偏移量其实就是能走上的台阶的高度,这其实是很有用的一个属性,走上一些高度不是很高的台阶或者石头之类的东西不再需要跳跃,这也更符合实际的移动情况。但是这个值有一个限制即该值必须小于等于(高度+半径*2)(上分图片中的最下方两个值),这个设定其实很好理解,毕竟你一个一米七的人不可能一步跨上一米多的台阶吧。

蒙皮宽度一般不用管,它就是在你的碰撞器外再加一层,用于适应衣服等,是一个很小的值。

最小移动距离顾名思义就是每一步移动的最小量,这个值不宜过大,否则可能会出现“罚站”的情况

中心即使碰撞器的中心,半径和高度也是指的碰撞器的参数。CharacterController是自带碰撞器的不需要再去添加,其默认的碰撞器是胶囊形。

CharacterController为我们提供了两种移动方法:Move 和 SimpleMove,两者都需要一个Vector3类型的参数

其中Move不会受到重力效果,需要重力可以把参数中的Y设为重力(比如-9.8),返回碰撞的信息

SimpleMove会受到重力效果,参数中的Y可以不写,会有默认值,返回一个Bool值,是否在地面上

下面做一个简单的演示:

先简单创建一个场景,做一个斜面和一个台阶,创建一个胶囊作为角色,然后把主摄像机绑定到胶囊上模拟第一人称游戏的场景。

    CharacterController controller;void Start(){controller = GetComponent<CharacterController>();}void Update(){Move();      }void Move(){float h = Input.GetAxis("Horizontal");float v = Input.GetAxis("Vertical");Vector3 dir = new Vector3(-h, 0, -v);controller.SimpleMove(dir);}

Horizontal和Vertical代表横向和纵向输入即WASD或者上下左右键(这里的负号只是我的场景里面的方向的问题)

Unity:角色控制器(CharacterController)相关推荐

  1. unity 使用角色控制器CharacterController移动对象造成模型动画的抖动

    使用角色控制器控制对象的移动,主要用到Move和simplemove函数: function Move (motion : Vector3)   //montion表示将控制器移动到这个坐标点,注意它 ...

  2. unity角色控制器简介

    Character Controller 用于应用到会动的游戏对象上,添加角色控制器后,会自动添加一个胶囊碰撞体 主要参数说明: Slope Limit:坡度限制 Step Offset:台阶高度 - ...

  3. Unity 角色控制器重复使用Ragdoll布娃娃系统,动画控制和布娃娃状态切换

    大家好,今天开发游戏的时候做了Ragdoll相关的功能,于是写写心得. 如果要在单一物体重复使用Ragdoll布娃娃系统,那我们需要对物体设置两个状态,一个是正常状态,受动画系统控制,一个是布娃娃状态 ...

  4. 【Unity】多种方法实现第一人称角色移动(一)角色控制器

    前言   在Unity中要实现第一人称视角移动的方法有很多,每种方法各有优劣,本次要介绍的就是使用角色控制器CharacterController来实现的方法.   在阅览下面的步骤之前,你首先需要一 ...

  5. Unity自定义角色控制器(一):碰撞检测

    我实在很喜欢用Unity.它在处理很多底层问题的同时有给了开发者很多自由.而且它还有着非常活跃的社区,起到了很大的帮助. 不幸的是,之前也说了,Unity也带着世界上最糟糕的角色控制器.在与Unity ...

  6. 【Unity】FPS游戏中的物理引擎——角色控制器(CharacterController)和刚体(Rigidbody)初解

    今天会谈到角色控制器和刚体主要是为了做一个游戏人物的控制器,角色控制器和刚体各有各的优点. 首先说一下刚体吧,刚体这个组件可以说是做一些真是物理游戏的开发者的福音,只要你给物体加上刚体基本可以算是给它 ...

  7. Unity手游之路lt;七gt;角色控制器

    我们要控制角色的移动,能够所有细节都由自己来实现.控制角色模型的移动,同一时候移动摄影机,改变视角.当然Unity也提供了一些组件,能够让我们做更少的工作,实现我们所期望的功能.今天我们就一起系统来学 ...

  8. 详解Unity中的角色控制器

    前言 如何让玩家所操纵的角色动起来,这在Unity中很容易实现,但是如何确保玩家所操作的角色不会产生一些非常违反物理常识的情况?而这就需要进行大量的检测,已确保玩家所操纵的角色正常.所幸Unity为我 ...

  9. Unity超级角色控制器研究(四)——地形检测

    一个地形检测反例 因此我们想知道什么在角色脚底下呢?首先是距离脚下有多远.我们会想知道角色的脚是否贴着地面还是在半空中.我们还会想知道脚下地面具体位置坐标,这对于上一章强调过的钳住地面是很重要的.第三 ...

最新文章

  1. tensorflow-gpu 常用网址
  2. html设置页面大小_如何将Word文档页面大小设置为16开?
  3. 手机访问PC网站自动跳转到手机网站代码
  4. js 动态绑定事件 on click 完美解决绑定不成功
  5. JavaScript-Iterable迭代
  6. 疫情之下的“催化剂”:在线经济崛起 房产数字化变革加速
  7. 计算机系班级海报,系部动态 | 电子系“五彩班栏”班级海报评比
  8. 奇怪,勒索软件Ryuk 新版本把这些 *UNIX 文件夹列入了黑名单
  9. vue中的v-show与v-if区别
  10. commit(), commitNow()和commitAllowingStateLoss()
  11. div contenteditable=true各个浏览器上的解析
  12. PMP考试参加培训一定能过吗?
  13. 详解测试开发工程师六大能力模型
  14. 业内人士解读:开发一个App到底要多少钱?
  15. 使用pip无法完全卸载autoitlibrary,提示 we cannot accurately determine which files belong to it which would‘解决办法
  16. DiskPart介绍
  17. 线性表的基本操作实现
  18. RFID固定资产管理系统之茶叶产品资产管理,智能监控防盗管理
  19. uml具有多种视图_UML语言中五大视图
  20. 收录CTF MISC方向中使用的在线工具网站

热门文章

  1. 完美世界 游戏测试工程师 校招面经
  2. Spring学习第二天
  3. linux 卸载模块命令,linux卸载内核模块命令是什么
  4. 春节过后不想打工了想自己创业
  5. 查看Mac电脑硬盘使用时间
  6. elementUI响应式隐藏元素
  7. w ndows7放大字体,Windows7字体变大的两个解决方法
  8. Mysql高级(事务、索引)
  9. 利用电磁特性分析对永磁同步电机进行故障诊断
  10. linux 调用动态库so文件