赞
踩
控制角色移动的组件主要有:Transform 组件、Rigidbody 组件、CharacterController 组件。Transform 组件通过控制角色位置实现移动,Rogidbody 组件通过控制角色速度实现移动,CharacterController 组件通过控制角色速度和模拟碰撞实现移动。Transform 组件和 Rogidbody 组件不便于控制角色爬坡和爬梯,CharacterController 组件能够很方便地实现角色在各种复杂地形中运动。
CharacterController 继承 Collider(见→碰撞体组件Collider),其属性面板如下:
说明:CharacterController 继承 Collider,并且其碰撞体是一个胶囊体。
CharacterController 中控制角色移动的方法如下:
- public CollisionFlags Move(Vector3 motion)
- public bool SimpleMove(Vector3 speed)
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)运行效果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。