角色控制器组件简介
①.游戏物体的“引擎”
在游戏开发过程中,最关键的是游戏的主角,也就是我们玩家所操控的虚拟角色,
角色在游戏中必须“会动”,角色可以走,跑,跳,飞等等。
在 Unity 中可以让角色“动起来”的常用组件有三个:Transform,Rigidbody,
这两个我相信大家已经使用大量的使用过了。
另外还有一个组件叫做:Character Controller,角色控制器。

②.Character Controller
角色控制器也属于物理组件,它的位置在:
Component-->Physics-->Character Controller

③.角色控制器的主要用途
角色控制器主要用于第三人称或者第一人称游戏主角(人形为主)控制。

使用角色控制器组件控制角色简单移动

环境准备:

①创建一个Plane地面并赋予材质
②创建一个 Capsule 游戏物体命名为Player;
③给该游戏物体附加 Character Controller 组件【见图】

控制角色移动
SimpleMove(Vector3):简单移动
以一定的速度移动角色,会自动应用重力。
[角色控制器不是刚体,但是具备刚体的一些属性]

Move(Vector3):移动
更为复杂的一种运动,每次都绝对运动,不会应用重力。

测试准备:

创建一个新的脚本命名为Player,然后拖拽挂在到Player游戏物体身上【见图】

SimpleMove方法移动代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Player : MonoBehaviour
{private CharacterController characterController;private void Start(){characterController = gameObject.GetComponent<CharacterController>();//获取自身的角色控制器组件.}private void Update(){float horizontal = Input.GetAxis("Horizontal");//获取横向X轴.float vertical = Input.GetAxis("Vertical");//获取纵向Z轴.characterController.SimpleMove(new Vector3(horizontal,0,vertical)*2f);}
}

效果:

 Move方法移动代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Player : MonoBehaviour
{private CharacterController characterController;private void Start(){characterController = gameObject.GetComponent<CharacterController>();//获取自身的角色控制器组件.}private void Update(){float horizontal = Input.GetAxis("Horizontal");//获取横向X轴.float vertical = Input.GetAxis("Vertical");//获取纵向Z轴.characterController.Move(new Vector3(horizontal,0,vertical)*0.2f);}
}

效果:

 角色控制器属性讲解
①Slope Limit
斜率限制,控制角色最大的爬坡斜度。[演示:角色爬坡]


②Step Offset
台阶高度,控制角色可以迈上最大的台阶高度,在unity中一个Cube的高度是一米,新建一个Cube制作一个简单的台阶

[演示:角色上台阶]

③Skin Width [默认即可]
皮肤厚度,在角色的外围包裹着一层“皮肤”,设置这层皮肤的厚度。
数值调大,最明显的就是角色和地面之间的间距变大,也就是角色皮肤变厚了。

④Min Move Distance [默认即可]
最小移动距离,默认是 0.001,也就是 1 毫米。
如果该数值调大,但代码中单位移动速度很慢,角色就不会动。

⑤Center/Radius/Height
角色控制器组件在 Scene 面板中体现为一个“胶囊碰撞器”的形状。
Center:控制中心点的位置;
Radius:控制半径;
Height:控制高度。

小技巧:在 Game 面板将 Gizmos 设置为选中状态,可以在运行状态看到组
件的图标,方便运行过程中对组件进行调试。

一个游戏物体附加了角色控制器组件后,
和角色控制器组件共存的其他的碰撞器组件是处于“无效”状态。
和场景中其他物体的交互碰撞,是以角色控制器组件的边缘进行判断的。

OnControllerColliderHit(ControllerColliderHit hit)函数可以通过 hit 获取到角色碰撞器碰撞到的物体的信息【代码演示】。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Player : MonoBehaviour
{private CharacterController characterController;private void Start(){characterController = gameObject.GetComponent<CharacterController>();//获取自身的角色控制器组件.}private void Update(){float horizontal = Input.GetAxis("Horizontal");//获取横向X轴.float vertical = Input.GetAxis("Vertical");//获取纵向Z轴.characterController.SimpleMove(new Vector3(horizontal,0,vertical)*2f);}private void OnControllerColliderHit(ControllerColliderHit hit){Debug.Log(hit.gameObject.name);}
}

测试结果:

此文章只是为了记录一下学习笔记,如有不足还望多多指点!

Character Controller角色控制器组件相关推荐

  1. unity3d人物跳_Unity3D研究院之角色控制器组件研究(二十二)

    Unity3D封装了一个非常好用的组件来实现第一人称视角与第三人称视角游戏开发,我们称他为角色控制器组件,几乎不用写一行代码就可以完成一切的操作,神奇吧.使用它的方法如下,首先打开Unity游戏引擎编 ...

  2. Unity3D基础38:角色控制器组件

    前文:https://blog.csdn.net/Jaihk662/article/details/87906156(Input控制面板) 一.CharacterController角色控制器 为什么 ...

  3. Unity3D 角色控制器 Character Controller

    添加组件 角色控制器组件介绍 [Slope Limite]爬坡角度限制(如图限制爬坡角度为10度,超过10度的斜坡无法前进) [Step Offset]脚步长度限制 [Skin Width]和胶囊体相 ...

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

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

  5. Unity3d之角色控制器

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

  6. 【Unity游戏开发教程】零基础带你从小白到超神16——四种方法控制人物移动之角色控制器

    角色控制器 控制人物移动的四种方式 直接修改组件位置 去资源商城下载角色控制系统成品 unity提供的角色控制器组件 Character Controller API 通过物理系统自己做 拓展 常用的 ...

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

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

  8. unity3d鸿蒙系统支持,Unity3D之处理角色控制器实现上坡爬坡减速

    按照正常情况游戏中角色在上坡爬坡的时候速度应该减慢,可是角色控制器组件没有帮我们做这个判断,刚好最近工作中需要做这个功能, 我就用勾股定理的法则来解决这个问题.如下图所示,当角色在爬坡的时候,角色控制 ...

  9. Unity中的Character Controller组件的基本使用

    文章目录 属性介绍 脚本使用 属性 方法 实现带重力效果的第三人称移动 添加FreeLook相机 添加Character Controller组件 编辑脚本 这是一个角色控制组件,用于移动角色.可以对 ...

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

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

最新文章

  1. rabbitmq安装完整版
  2. Golang Context包的使用
  3. ssm_maven idea分模块开发
  4. redis数据结构详解之Hash(四)
  5. 了解Java密码扩展的基础
  6. kafka自带的zk启动_KafKa 启动
  7. 太原市智能家居行业协会成立
  8. WPF布局之WrapPanel与StackPanel
  9. unable to find setter method for attribute:[commandName]
  10. 《岳阳楼记》古文鉴赏
  11. 天津大学计算机学院院长及副院长,微软亚洲研究院副院长周明教授和段楠研究员来天津大学-中国计算机学会...
  12. 设置什么加快计算机启动速度,如何设置CPU加速对电脑启动速度的方法(更改CPU数量可开机提速)...
  13. Complex-Valued CNN and Its Application in Polarimetric SAR Image Classification
  14. 【收藏】2020届互联网公司校招时间总表
  15. JDBC和Maven工程的创建
  16. Bless You Autocorrect!(字典树上建图)
  17. 小程序使用小白接口上传图片方法1
  18. 湖北c语言二级考试真题,湖北省计算机二级C语言考试.pdf
  19. 电路原理入门书籍推荐
  20. 搭建个人家用NAS网络存储服务器

热门文章

  1. Flink写入hdfs报错:Flink job failed with “Checkpoint Coordinator is suspending
  2. python如何拼读英语单词怎么写_英语单词怎么拼读 方法是什么
  3. FFMPEG学习【ffmpeg工具】
  4. 联想r480安全模式_thinkpad笔记本如何进入安全模式?
  5. PDF修改文字的步骤
  6. 如何在ArcGIS中打开卫星影像
  7. 神经网络算法的关键参数,神经网络计算方法
  8. 【商业模式学习感悟】趣步App——新型商业模式,还是新型传销?
  9. 主编编辑器如何插入图片
  10. [BZOJ4816][Sdoi2017]数字表格 数学