知方号

知方号

CharacterController

CharacterController

CharacterController.Move切换到手册public CollisionFlags Move (Vector3 motion); 描述

为 GameObject 的移动提供附加的 CharacterController 组件。

CharacterController.Move 运动在给定方向移动 GameObject。给定方向需要绝对移动增量值。碰撞约束 Move 的发生。返回值 CollisionFlags 指示碰撞的方向:None、Sides、Above 和 Below。CharacterController.Move 不使用重力。下面的示例说明如何使用 CharacterContoller.Move。Update 使 Move 重新定位玩家。此外,Jump 更改玩家在垂直方向的位置。

using System.Collections;using System.Collections.Generic;using UnityEngine;public class Example : MonoBehaviour{ private CharacterController controller; private Vector3 playerVelocity; private bool groundedPlayer; private float playerSpeed = 2.0f; private float jumpHeight = 1.0f; private float gravityValue = -9.81f; private void Start() { controller = gameObject.AddComponent(); } void Update() { groundedPlayer = controller.isGrounded; if (groundedPlayer && playerVelocity.y < 0) { playerVelocity.y = 0f; } Vector3 move = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); controller.Move(move * Time.deltaTime * playerSpeed); if (move != Vector3.zero) { gameObject.transform.forward = move; } // Changes the height position of the player.. if (Input.GetButtonDown("Jump") && groundedPlayer) { playerVelocity.y += Mathf.Sqrt(jumpHeight * -3.0f * gravityValue); } playerVelocity.y += gravityValue * Time.deltaTime; controller.Move(playerVelocity * Time.deltaTime); }}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。