Ich arbeite gerade an der Bewegung meines Charakters in Unity3D . Ich habe es geschafft, ihn relativ zum Mauszeiger zu bewegen. Ich habe eine Neigungsgrenze von 45 ° festgelegt, die es dem Charakter nicht erlaubt, mit höheren Graden die Berge hinaufzugehen. Aber er kann sie trotzdem hochspringen.
Wie schaffe ich es, ihn wieder nach unten rutschen zu lassen, wenn er an Stellen mit zu hoher Neigung sprang?
Danke im Voraus.
edit: Codefragment meiner Grundbewegung. mit UnityEngine; using 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);
}
}