本文共 1302 字,大约阅读时间需要 4 分钟。
角色控制器是unity内置的一个人物控制脚本。适用于第一、第三人称中控制人物的一个组件,刚体的计算量比较大, 所以出现了CharacterController来代替刚体,做具体的人物控制。
常用属性介绍Slop Limit : 坡度的限制,限制角色可以爬坡的最大角度Step Offset : 高度限制,上楼梯时一步的最大高度Skin Width : 皮肤厚度Min Move Distance : 最小移动距离Center : 角色控制中心Radius : 角色控制器的半径Height : 角色控制器的高度这些值一般由策划设置
例子一pc电脑上通过点击来使人物移动
1using UnityEngine;2using System.Collections;3/// 4/// People test.5/// 使用角色控制器,控制角色移动(播放动画)6/// eg:移动到鼠标点击的位置(地面上走)7/// 8public class PeopleTest : MonoBehaviour {9Animation _ani;10CharacterController _characterCtrl;11//人物移动的目的地12Vector3 _v = Vector3.zero;13void Awake(){14_ani = GetComponent ();15_characterCtrl = GetComponent ();16}17void Update(){18if (Input.GetMouseButtonDown (0)) {19//射线:从相机位置向鼠标点击位置法射射线20Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);21//射线碰撞的信息22RaycastHit hit;23if (Physics.Raycast (ray, out hit)) {24//检测射线是否发生碰撞,(碰到地面、人、墙)25_v = hit.point; //碰撞的这个点26}27}28if (Vector3.Distance (_v, transform.position) > 0.5f) {29Debug.Log ("Run");30transform.LookAt (_v);31_ani.Play ("Run");32_characterCtrl.SimpleMove (transform.forward * 5);33} else {34_ani.Play ("Idle");35}36}37}会出现的bug:转载地址:http://udjla.baihongyu.com/