Unity:角色控制器(CharacterController)

2023-10-27

角色控制器是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或者上下左右键(这里的负号只是我的场景里面的方向的问题)

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity:角色控制器(CharacterController) 的相关文章

随机推荐

  • 关于unity打包安卓apk详细步骤

    小白的经验之谈 如有不足 欢迎指出 第一步 如果想要让Unity可以打包Apk 你需要先下载一个JDK7以上 包括7 的版本 并且必须是64位 安装时请记住您的安装路径 下面是分享的JAVA的jdk 链接 https pan baidu c
  • “阿里爸爸”上新!《2023阿里Java性能调优手册(实战参考)》

    为什么要学Java性能调优 编辑切换为居中 添加图片注释 不超过 140 字 可选 现在去学性能调优还有用么 编辑切换为居中 添加图片注释 不超过 140 字 可选 编辑切换为居中 添加图片注释 不超过 140 字 可选 编辑切换为居中 添
  • 变量的获取与设置:echo、变量设置规则、unset

    变量的获取与设置 echo 变量设置规则 unset echo命令 使用echo命令可以获取变量 但是在获取变量时 前面必须加上 或使用 variable 方式 例如 输出PATH的内容 当一个变量名称尚未设置时 默认的内容是 空 的 另外
  • Java 中的 JDK 介绍

    Java 开发工具包 JDK 是一个跨平台的软件开发环境 它提供了开发基于 Java 的软件应用程序和小程序所需的工具和库的集合 它是Java中使用的核心包 与JVM Java虚拟机 和JRE Java运行时环境 一起 初学者经常对 JRE
  • vscode的sql开发插件

    vscode的sql开发插件 Better Comments Error Lens SQLTools MySQL MariaDB SQL Formatter VSCODE连接数据库 执行sql Better Comments 注释美化插件
  • 2018年计算机专业考研,2018年计算机专业考研大纲解析

    2017年暑期几十年不遇的高温炙烤着紧张复习的同学 早早发布的2018年计算机考研大纲给大家带来一丝秋的凉意 考研大纲从考试目的到考试形式 再到四门课程的每一个知识点都没有任何变化 这符合文都老师们预测 也是广大同学们的福音 暑期奋战没有浪
  • IOS消息推送之APNS

    转自 http blog csdn net jiajiayouba article details 39926017 一 背景概述 1 环境配置 APNS Apple Push Notification Service 本文对推送相关概念不
  • 光线追踪渲染实战(三):OpenGL 光线追踪,用 GPU 加速计算!

    项目代码仓库 GitHub https github com AKGWSB EzRT gitee https gitee com AKGWSB EzRT 目录 前言 0 前置知识 1 布置画布 2 三角形数据传送到 shader 3 在 s
  • SVN添加报错处理

    文章目录 SVN添加报错处理 svn E200009 svn E195023 SVN添加报错处理 svn E200009 svn warning W150002 Users dry Documents xxx xxx xcodeproj p
  • 新板子晶振不起振

    问题描述 1 新焊接的电路板晶振未成功起振 2 起振后晶振两端波形不一致 正常情况下8MHZ晶振两端对地波形都一样 波形规整 光滑无毛刺 如下图 晶振部分原理图如图 解决过程 先检查电路焊接情况 排除焊接问题 再给板子烧录程序 灌入程序后晶
  • Linux——会话、守护进程创建模型及代码实现

    会话 概念 多个进程组的集合 创建一个会话需要注意以下6点 调用进程不能是进程组组长 创建会话的创始人不能是进程组组长 该进程变成新会话首进程 session headler 该进程成为一个新进程组的组长进程 需有root权限 ubuntu
  • Ceph:ceph修复osd为down的情况

    ceph修复osd为down的情况 今天巡检发现ceph集群有一个osds Down了 通过dashboard 查看 ceph修复osd为down的情况 点击查看详情 可以看到是哪个节点Osds Down 了 通过命令查看Osds状态 查看
  • 高德地图key设置

    调试key 找到 keytool exe所在目录 在当前目录运行命令行工具 keytool exe list v keystore C Users 用户名 android debug keystore
  • [ C++ ] template 模板进阶 (特化,分离编译)

    本篇内容包括C 非典型模板参数 类模板的特化 模板的分离编译 C 模板简单概念及其使用大家可点击此链接 C C 之模板template 目录 1 数组模板示例和非类型模板参数 2 模板的特化 2 1什么是模板的特化 2 2 函数模板特化 2
  • nginx配置详解

    nginx进程 一般设置为和cpu核数一样 worker processes 4 错误日志存放目录 error log data1 logs error log crit 运行用户 默认即是nginx 可不设置 user nginx 进程p
  • 计算机专业毕业论文python毕业设计题目推荐基于Python实现的数据分析系统[包运行成功]

    文末获取联系 目录 一 项目介绍 二 文档截图 三 运行截图 四 源码获取 一 项目介绍 基于Python的数据分析系统的设计和实现 该项目采用技术Python的django框架 mysql数据库 项目含有源码 论文 PPT 配套开发软件
  • SQL DEFAULT约束

    SQL DEFAULT约束 一 说明 本文主要讲SQL 中的DEFAULT约束 插入默认值 二 所用工具 SQL 数据库 三 内容 1 DEFAULT约束说明 DEFAULT 约束用于向列中插入默认值 如果列中没有规定其他的值 那么会将默认
  • JavaScript使用技巧精萃

    一 确认删除用法 1 BtnDel Attributes Add onclick return confirm 确认删除 2 linktempDelete Attributes onclick javascript return confi
  • cuda的cublas库

    cublas库是在NVIDIA CUDA上实现blas 基本线性代数子程序 该库是已经封装好的 可以利用该库进行向量和矩阵的多种操作 cuBLAS包含了三部分 cuBLAS API 从cuda6 0开始 CUBLASXT API 从cuda
  • Unity:角色控制器(CharacterController)

    角色控制器是unity中专门用来控制角色的组件 主要是运动相关 区别于直接用Transform或者RigidBody CharacterController有着更好的效果 它拥有RigidBody的一些重要特性 但是又去掉了很多物理效果 这