Tôi hiện đang làm việc về chuyển động của nhân vật trong Unity3D . Tôi quản lý để làm cho anh ta di chuyển tương đối đến con trỏ chuột. Tôi đặt giới hạn độ dốc là 45 °, không cho phép nhân vật đi lên núi với độ cao hơn. Nhưng anh vẫn có thể nhảy chúng lên.
Làm thế nào để tôi có thể khiến anh ta trượt xuống lần nữa khi anh ta nhảy ở những nơi có độ dốc quá cao?
Cảm ơn trước.
chỉnh sửa: Đoạn mã của phong trào cơ bản của tôi. sử dụng UnityEngine; sử dụng System.Collections;
public class BasicMovement : MonoBehaviour {
private float speed;
private float jumpSpeed;
private float gravity;
private float slopeLimit;
private Vector3 moveDirection = Vector3.zero;
void Start()
{
PlayerSettings settings = GetComponent<PlayerSettings>();
speed = settings.GetSpeed();
jumpSpeed = settings.GetJumpSpeed();
gravity = settings.GetGravity();
slopeLimit = settings.GetSlopeLimit();
}
void Update() {
CharacterController controller = GetComponent<CharacterController>();
controller.slopeLimit = slopeLimit;
if (controller.isGrounded) {
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
if (Input.GetButton("Jump")) {
moveDirection.y = jumpSpeed;
}
}
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
}