Unity 角色控制器 Charactor Controller

摘要:
角色控制器允许您在受到碰撞时轻松移动。它不受重力的影响,所以你必须自己在移动功能中处理重力。也就是说,我们需要自己计算出y轴方向的速度变化。CharactorController组件参数SlopeLimit。爬升极限:通常,2.0 CharactorController使用UnityEngine测试1;

Charactor Controller(角色控制器)

“ 角色控制器允许你在受制于碰撞的情况下很容易的进行运动,而不用处理刚体。

 角色控制器不受力的影响,仅仅当你调用 Move 函数时才运动。

 然后它将执行运动,但是受制于碰撞。"

                                              --- From Unity3d 官方文档

Unity 角色控制器 Charactor Controller第1张

我们通常在人物模型上加上这个组件后,就可以控制模型的移动了

要注意的一点是:加了角色控制器后,他就不受重力影响

所以要自己在move函数中处理重力的情况

即我们要自己出来y轴方向上的速度变化

Charactor Controller 组件参数

Slope Limit 爬坡限制:小于等于此角度可以上坡

Step Offset 台阶高度

Skin Width 皮肤宽度:太大就抖动,太小就卡住,最好设置成 Radius 半径的10%

Min Move Distance 最小移动距离:0,太多不行,太小动不了

Center:中心点坐标

Radius:半径,一般0.5

Height:高,一般2.0

Charactor Controller 测试

 1 using UnityEngine;
 2 
 3 public class CharactorControllerTest : MonoBehaviour
 4 {
 5     public float speed = 6.0F;
 6     public float jumpSpeed = 8.0F;
 7     public float gravity = 20.0F;
 8     private Vector3 moveDirection = Vector3.zero;
 9 
10     void Update()
11     {
12         CharacterController controller = GetComponent<CharacterController>();
13         if (controller.isGrounded)
14         {
15             moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
16             moveDirection = transform.TransformDirection(moveDirection);
17             moveDirection *= speed;
18             if (Input.GetKeyDown(KeyCode.Space))
19                 moveDirection.y = jumpSpeed;
20         }
21         moveDirection.y -= gravity * Time.deltaTime;
22         controller.Move(moveDirection * Time.deltaTime);
23     }
24 }

运行效果:

Unity 角色控制器 Charactor Controller第2张

*** |  以上内容仅为学习参考、学习笔记使用  | ***

 
 

免责声明:文章转载自《Unity 角色控制器 Charactor Controller》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇DECLARE_DYNAMICHTML参考 :TBODY元素 详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

uni-app——uni-ui的使用

uni-app——uni-ui的使用 0.2882019.06.09 22:53:34字数 186阅读 2602 1)uni-ui 是全端兼容的基于flex布局的ui库;2)可以使用 npm 的安装使用方式,也可下载相关组件直接使用;3)uni-ui 不支持使用 Vue.use() 的方式安装4)uni-ui 依赖 scss,若是 HBuilderX 中创...

react路由懒加载(异步组件)------react-loadable

https://www.npmjs.com/package/react-loadable 安装 cnpm install react-loadable 基本使用 假设现在项目中有个 home页面组件src/pages/home/index.js import React, { Component } from 'react' class Home ex...

uniapp 学集 (第二章)nvue、组件

写在前面:分享技术,共同进步,有不足请见谅,相关意见可评论告知 ~ 有道无术,术尚可求; 有术无道,终止于术! 多端运行,架式简化; 编程路漫,学无止尽! 目录 NVUE 介绍 区别 组件 视图容器 视图容器(view) 可滚动视图(scroll-view) 滑块视图(swiper) 可拖动区域(movable) movable-are...

HK2使用详解

HK2介绍 组件 生命周期 定义服务 注入服务 HK2介绍 HK2是一个轻量级动态依赖注入框架,它是JSR-330的实现。 组件 在HK2组件模型中,一个组件的功能是通过服务接口-服务实现的模式声明的。一个HK2服务接口 标识并描述了一个构建模块或者应用程序扩展点。HK2服务实现实现了HK2服务接口。 #### 组件模型 (HK2)提供了一个模块系统和...

vue 路由更新页面视图未更新问题

最近项目做面包屑的时候遇到一个问题就是路由变化的时候页面视图并没有发生变化,后来上网查,发现是vue-router的特性导致的。 vue-router的切换不同于传统的页面的切换。路由之间的切换,其实就是组件之间的切换,不是真正的页面切换。这也会导致一个问题,就是引用相同组件的时候,会导致该组件无法更新,也就是我们口中的页面无法更新的问题了。 而我正是因为...

XNA框架基础——XNA介绍

第1章:XNA介绍 欢迎来到XNA的世界。作为一个游戏程序员,你或许知道 DirectX ,甚至也许具有XNA 框架的基础知识。 这一个章节解释了如何安装 XNA Game Studio Express 和如何以有效率的方式使用它。它也包含相当多的技巧,这些技巧甚至可能对任何一个已经知道基础知识的人都有用。 在下面一些章节中,你将直接地开始开发一些很酷的...