前文:https://blog.csdn.net/Jaihk662/article/details/87906156(Input控制面板)

一、CharacterController角色控制器

为什么使用角色控制器而不使用刚体?

→ 刚体过于灵活(敏感),例如稍有碰撞就会被弹开,物体的质量不好把握或计算等等

角色控制器面板与属性:

  • Slope Limit:控制角色最大的爬坡斜率
  • Step Offset:控制角色可以迈上最大的台阶高度
  • Skin Width:在角色的外围包裹着一层“皮肤”,这层皮肤的厚度,就相当于角色身上透明的衣服,如果Skin Width设置为1米,那么角色当然就会“浮空”1米,一般保持默认即可
  • Min Move Distance:最小移动距离,默认是1毫米,如果该数值过大但代码中单位移动速度很慢,角色就不会动
  • Center/Radius/Height:角色控制器组件在Scene面板中体现为一个“胶囊碰撞器”的形状,如下面第二张图,Center为胶囊中心点位置,Radius为半径,Height为高度

二、角色碰撞器与实例

OnControllerColliderHit(ControllerColliderHit hit):角色控制器自带有碰撞器,hit为角色碰撞器碰撞到的物体的信息,除此之外,如果拥有角色控制器组件,那么共存的其他的碰撞器组件就会处于“无效”状态

角色碰撞器的所有属性也都可以通过脚本获取,另一个控制角色移动脚本示例如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMove : MonoBehaviour
{private Rigidbody myRigidbody;private Transform myTran;private CharacterController cont;public float moveSpeed = 12.0f;public float turnSpeed = 180.0f;private float myMoveAxis = 0.0f;private float myTurnAxis = 0.0f;void Start(){myRigidbody = gameObject.GetComponent<Rigidbody>();myTran = gameObject.GetComponent<Transform>();cont = gameObject.GetComponent<CharacterController>();cont.skinWidth = 0.02f;     //初始化角色的皮肤厚度}void FixedUpdate(){myMoveAxis = Input.GetAxis("Vertical");myTurnAxis = Input.GetAxis("Horizontal");Move(myMoveAxis);Turn(myTurnAxis);}void Move(float myMoveAxis){//Vector3 moveChange = myTran.forward * myMoveAxis * Time.deltaTime * moveSpeed;//myRigidbody.MovePosition(myTran.position + moveChange);if (myMoveAxis > 0)             //角色前进cont.Move(myTran.forward * Time.deltaTime * moveSpeed * myMoveAxis);else if (myMoveAxis < 0)        //角色后退{//Quaternion turnChange = Quaternion.Euler(0f, 90f, 0f);//myRigidbody.MoveRotation(myRigidbody.rotation * turnChange);cont.Move(myTran.forward * Time.deltaTime * moveSpeed * myMoveAxis/2);}}void Turn(float myTurnAxis){float Change = myTurnAxis * turnSpeed * Time.deltaTime;Quaternion turnChange = Quaternion.Euler(0f, Change, 0f);myRigidbody.MoveRotation(myRigidbody.rotation * turnChange);}void OnControllerColliderHit(ControllerColliderHit hit){Debug.Log(hit.gameObject.name);}
}

Unity3D基础38:角色控制器组件相关推荐

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

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

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

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

  3. [Unity3D]第一人称角色控制器

    [Unity3D]最简单最详细的第一人称角色控制器 自学Unity3D有一段时间了,一直想弄一个第一人称角色控制器,网上还是有很多教程和资料,但感觉有很多教程和资料理解起来比较复杂,在这里我结合网上所 ...

  4. Unity3D基础7:Transform组件

    一.组件(Component) 组件:即是游戏物体的组成零件 Unity3D就是一款"组件式"游戏开发引擎,使用各种各样的组件拼装出我们游戏物体,最终拼接出一款完整的游戏 组件也就 ...

  5. Unity3D基础6:灯光组件

    另一基本组件:https://blog.csdn.net/Jaihk662/article/details/86749803(摄像机) 一.灯光简介 两个默认物体之一,用于照亮游戏世界 三种类型的灯光 ...

  6. Unity3d之角色控制器

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

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

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

  8. Unity3D 角色控制器 Character Controller

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

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

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

最新文章

  1. linux更新出现Could not get lock /var/lib/apt/lists/lock问题解决方法
  2. 去年我年薪 30W,今年我一天做 3 顿饭
  3. Face ID 上手体验信息汇总:面部解锁流畅,原理移植AR让人憧憬
  4. 企业CIO如何让IT部门成为价值中心
  5. pytorch使用清华源安装仍失败解决方案
  6. CentOS7中NAT网卡设置静态IP
  7. 写一个脚本,判断下如果是阴历7月7日,在服务器上广播“七夕情人节快乐!”...
  8. IDEA JDK1.8 ProGuard 混淆Maven项目代码
  9. android 控件覆盖关系,安卓子控件抢占父控件点击事件或者焦点问题
  10. SCUT - 244 - 全新的游戏 - 凸包
  11. 基于LDAP的WebLogic虚拟化统一用户权限管理
  12. CCF NOI1170 质因数分解
  13. 31 款轻量高效的开源 JavaScript 插件和库
  14. IPhone IPad 利用cocos2d开发游戏问题
  15. 云计算不可及?私有云对IT架构三大影响
  16. 华科_图形学笔记_09_奇妙的真实感_片元着色01_01
  17. 27_ArrayList类
  18. 二进制与八进制、十进制、十六进制之间的转换
  19. 苹果在高端手机市场碾压安卓手机,国产旗舰不入前十
  20. 2020东南大学网络空间安全保研夏令营(预推免)经验

热门文章

  1. 自学python买什么教材-从自学到编写大学python教材——低调quot;虫师”谢乾坤
  2. 来自DFRobot的中文语音识别模块
  3. javaweb通过iis实现域账号免登陆_聊天小程序的Java实现
  4. httpclient java 异步_Java的异步HttpClient
  5. Leetcode 22. 括号生成(递归+去重)
  6. c++vector查找元素所在的索引下标
  7. Matlab的曲线拟合工具箱CFtool使用简介
  8. cocos 时间函数需要什么引用_Cocos Creator两个类相互引用(调用)
  9. egg风格 什么意思_egg框架学习笔记
  10. Can not find the tag library descriptor for “http://java.sun.com/jsp/jstl/core“