添加组件
文章图片
文章图片
角色控制器组件介绍 【Slope Limite】爬坡角度限制(如图限制爬坡角度为10度,超过10度的斜坡无法前进)
【Step Offset】脚步长度限制
【Skin Width】和胶囊体相关,建议不用调0.001
【Min Move Distance】两个物体间的最小距离,到这个距离后,物体就不在前进
【Center】胶囊体的位置(相对物体对象的位置)
【Radius】胶囊体周长
【Height】胶囊体高度
【胶囊体】角色控制器的碰撞模型,用于【Slope Limite】、【Step Offset】、【Min Move Distance】的计算
文章图片
角色控制器的脚本调用 控制物体移动:
Move();
不包含重力效果的移动SimpleMove();
包含重力效果的移动,推荐使用
CharacterController组件对象.SimpleMove(方向 * 移动速度 * Time.deltaTime);
cc.SimpleMove(transform.right * speed * Input.GetAxisRaw("Horizontal") * Time.deltaTime);
【Unity3D|Unity3D 角色控制器 Character Controller】本地坐标系: transform.方向(只有:up、forward、right,只有正方向,没有负方向)
public class PlayMove : MonoBehaviour
{
private CharacterController cc;
public float speed;
// Start is called before the first frame update
void Start()
{
//获取角色控制器组件对象
cc = GetComponent();
//初始化速度
speed = 100f;
}// Update is called once per frame
void Update()
{
//控制物体移动,SimpleMove包含重力效果的移动,前后移动
cc.SimpleMove(transform.forward * speed * Input.GetAxisRaw("Vertical") * Time.deltaTime);
//控制物体移动,SimpleMove包含重力效果的移动,左右移动
cc.SimpleMove(transform.right * speed * Input.GetAxisRaw("Horizontal") * Time.deltaTime);
}
}
推荐阅读
- Unity3d|【Unity3D Debug】“CharacterController.Move()在处理角色移动时,角色不论怎么转向其移动方向始终不变”的解决方案
- unity3d|Unity3D实现3D立体游戏原理及过程
- Unity3d|Unity Gameplay工具集(Unity Gameplay Tool Set)
- Unity3D|Unity3D ML-Agent-0.8.1 学习一(基础教程)
- unity|Unity3D GUI控件
- Unity3D|【Unity3D】GUI控件
- U3D|Unity接入穿山甲广告SDK教程
- blender 导出动画在unity 中添加
- Unity3D打砖块游戏入门教程