我是靠谱客的博主 结实棉花糖,最近开发中收集的这篇文章主要介绍【Unity3D】角色控制器(CharacterController),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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)运行效果

最后

以上就是结实棉花糖为你收集整理的【Unity3D】角色控制器(CharacterController)的全部内容,希望文章能够帮你解决【Unity3D】角色控制器(CharacterController)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部