Saat ini saya sedang mengerjakan gerakan karakter saya di Unity3D . Saya berhasil membuatnya bergerak relatif ke kursor mouse. Saya menetapkan batas kemiringan 45 °, yang tidak memungkinkan karakter berjalan naik gunung dengan derajat yang lebih tinggi. Tapi dia masih bisa melompati mereka.
Bagaimana saya bisa membuatnya meluncur ke bawah lagi ketika dia melompat di tempat dengan kemiringan yang terlalu tinggi?
Terima kasih sebelumnya.
edit: Cuplikan kode gerakan dasar saya. menggunakan UnityEngine; menggunakan 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);
}
}