CharacterController角色控制器组件详解

【组件界面】

【作用】 

 这是Unity为了使开发者能方便的开发第一人称视角的游戏而封装的一个组件,可以看做是受限的刚体,会表现出一定的物理效果,但不能表现出真实的物理效果,不受力的作用。例如,游戏中奔跑的角色能立刻停止移动不是真实的物理效果。带有该组件的物体在碰撞时相当于带有了碰撞器和刚体,如果和另外一个物体能发生碰撞,能接受到碰撞检测事件,但不会表现出真实的碰撞效果。

【属性】

  • Slope Limit:斜坡限制,单位为度,角色可以走上小于或等于该值的斜坡。
  • Step Offset:台阶高度,角色可以等上小于或等于该值的台阶,该值不能超过角色的高度。一般设为0.1~0.4
  • Skin Width:皮肤宽度,两个碰撞器可以互相穿透到和它们的皮肤宽度一样深的地方。较大的皮肤宽度减少抖动,较小的皮肤宽度会导致角色被卡住。一般设为半径的10%
  • Min Move Distance:最小移动距离,如果角色将要移动的距离小于该值,则角色不能移动,大多数情况下设为0。该值可用来减少抖动。
  • Center,Radius,Height:类同 Capsule Collider胶囊碰撞器的对应值

【移动和朝向控制】

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    private CharacterController character;
    private float speed = 2f;
    private float rotateSpeed = 2f;
    // Start is called before the first frame update
    void Start()
    {
        character = GetComponent<CharacterController>();
    }

    // Update is called once per frame
    void Update()
    {
        transform.Rotate(0, Input.GetAxis("Horizontal") * rotateSpeed, 0);
        Vector3 forward = transform.TransformDirection(Vector3.forward);
        float curSpeed = speed * Input.GetAxis("Vertical");
        character.SimpleMove(forward * curSpeed);
    }
}

【参考】

https://docs.unity3d.com/Manual/class-CharacterController.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值