Unity(2022.3.41LTS) - 角色控制器和3D刚体

目录

一. 角色控制

二. 3D刚体



一. 角色控制

名称: 功能:
坡度限制 将碰撞器限制为仅爬升比指示值更陡峭(以度为单位)的斜坡。
步长偏移 只有当楼梯离地面比指示值更近时,角色才会爬上楼梯。此值不应大于 Character Controller 的高度,否则将生成错误。
蒙皮宽度 两个碰撞体可以相互穿透,深度可达其 Skin Width (蒙皮宽度)。较大的 Skin Width 可减少抖动。低 Skin Width 会导致角色卡住。一个好的设置是将该值设为 Radius 的 10%。
最小移动距离 如果角色尝试移动到指示值以下,则它根本不会移动。这可用于减少抖动。在大多数情况下,此值应保留为 0。
中心 这将在世界空间中偏移胶囊碰撞体,并且不会影响角色的旋转方式。
半径 胶囊碰撞体半径的长度。这实际上是碰撞体的宽度。
高度 角色的胶囊碰撞器
高度。更改此设置将沿 Y 轴在正方向和负方向上缩放碰撞体。

Character Controller(角色控制器)

  1. 功能特点:

    • 主要用于模拟角色的基本运动,如行走、跑步、跳跃等,而不依赖于物理引擎的刚体。
    • 可以方便地控制角色与场景中的物体进行碰撞检测,避免角色穿透墙壁等物体。
    • 提供了一些内置的属性和方法,用于设置角色的速度、重力、碰撞响应等。
  2. 主要属性:

    • Slope Limit:限制角色可以攀爬的最大坡度。
    • Step Offset:角色可以跨越的台阶高度。
    • Skin Width:用于碰撞检测的皮肤宽度,以避免角色在与物体接近时出现抖动。
    • Min Move Distance:如果角色的移动距离小于这个值,则不会进行移动,以避免微小的移动导致不必要的计算。
  3. 使用方法:

    • 通过脚本获取 Character Controller 组件,并在 Update 函数中使用 Move 方法来实现角色的移动。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMove : MonoBehaviour
{
    public float speed;
    private CharacterController controller;
    // Start is called before the first frame update
    void Start()
    {
        controller = GetComponent<CharacterController>();
    }

    // Update is called once per frame
    void Update()
    {
        Vector3 moveDirection = new Vector3(Input.G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一然明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值