当前位置:网站首页>【Unity3D】角色控制器(CharacterController)
【Unity3D】角色控制器(CharacterController)
2022-07-29 11:31:00 【little_fat_sheep】
1 简介
控制角色移动的组件主要有:Transform 组件、Rigidbody 组件、CharacterController 组件。Transform 组件通过控制角色位置实现移动,Rogidbody 组件通过控制角色速度实现移动,CharacterController 组件通过控制角色速度和模拟碰撞实现移动。Transform 组件和 Rogidbody 组件不便于控制角色爬坡和爬梯,CharacterController 组件能够很方便地实现角色在各种复杂地形中运动。
CharacterController 继承 Collider(见→碰撞体组件Collider),其属性面板如下:

- Slope Limit:爬坡最大角度
- Step Offset:爬梯最大高度
- Skin Width:皮肤厚度
- Min Move Distance:最小移动距离
- Center、Radius、Height:角色用于检测碰撞的胶囊体中心、半径、高
说明:CharacterController 继承 Collider,并且其碰撞体是一个胶囊体。
CharacterController 中控制角色移动的方法如下:
public CollisionFlags Move(Vector3 motion)
public bool SimpleMove(Vector3 speed)2 应用
1)游戏对象
创建 2 个楼梯(每个楼梯由 5 个 Cube 对象拼成)和 2 个斜坡以及一个胶囊体,如下:

2)脚本组件
PlayerController.cs
using UnityEngine;
public class PlayerController : MonoBehaviour {
private CharacterController character;
private float speedRate = 4f;
private void Start () {
character = GetComponent<CharacterController>();
}
private void Update () {
float hor = Input.GetAxis("Horizontal");
float ver = Input.GetAxis("Vertical");
Vector3 speed = new Vector3(hor, 0, ver) * speedRate;
character.SimpleMove(speed);
}
}说明: PlayerController 脚本组件挂在胶囊体上。
3)运行效果

边栏推荐
- Peking University open classes are coming! Welcome to the "AI for science" class
- 如何使用 grep 跨多行查找模式匹配
- 『面试知识集锦100篇』1.面试技巧篇丨HR的小心思,你真的懂吗?
- ES6 arrow function this points to
- 【图像检测】基于灰度图像的积累加权边缘检测方法研究附matlab代码
- 开源峰会抢先看 | 7 月 29 日分论坛 & 活动议程速览
- HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界
- 2022 latest WiFi master applet independent version 3.0.8
- "Knowledge Collection" article to understand mysql index!!(recommended collection)
- Qt 之自定义界面(实现无边框、可移动)
猜你喜欢

How to use grep to find pattern matching across multiple lines

Starrocks technology insider: how to have both real-time update and fast query

MySql启动、连接sqlog、主从复制、双机热备(开机时)

如何使用 grep 跨多行查找模式匹配

开源峰会抢先看 | 7 月 29 日分论坛 & 活动议程速览

一键搭建博客:如何使用WordPress插件搭建专属博客

std::vector 拷贝、追加、嵌套访问

7月3日文: 表面上有危险,实属安全周期,大概率会快速上扬的个股

「PHP基础知识」使用数组保存数据

QML(一):自定义圆角按钮的处理
随机推荐
[SwiftUI 开发] @State @Binding @ObservedObject @EnvironmentObject
TCP和UDP
AMH6.X升级到AMH7.0后,登录后台提示MySQL连接出错怎么解决?
Spark efficient data analysis 01. Establishment of idea development environment
CSDN TOP1“一个处女座的程序猿“如何通过写作成为百万粉丝博主
考完PMP后有什么益处
PHP basics uses arrays to save data
What is kubernetes custom resource definition (CRD)?
就这?TypeScript其实并不难!(建议收藏)
LeetCode_ 416_ Divide equal sum subsets
面试官培训课件(非常实用的企业内训课件)
Peking University open classes are coming! Welcome to the "AI for science" class
Design and implementation of gbase8s Informix dodker high availability cluster self recovery cluster startup command oninitdb
开源峰会抢先看 | 7 月 29 日分论坛 & 活动议程速览
AI全流程开发难题破解之钥
解决idea在debug模式下变得非常慢的问题
"Knowledge Collection" article to understand mysql index!!(recommended collection)
Insights into the development of the enterprise live broadcast industry in 2022
『面试知识集锦100篇』1.面试技巧篇丨HR的小心思,你真的懂吗?
The interviewer training courseware (very practical in-house training courseware)