Jump to content
Unity Insider Forum

Objekt teleportiert sich immer nach oben


texaskeks2oo

Recommended Posts

Guten Tag,

ich stehe vor ein Problem bei dem ich nicht mehr weiter weiß. Das Objekt was sich bewegen soll teleportiert sich immer automatisch weiter vom Boden weg und fliegt dann in der Luft. Denn Boden habe ich mit dem Mesh Collider gemacht. Jedoch fliegt mein Objekt nach dem ich es bewege einfach in die Luft.

Würde mich freuen wenn mir jemand weiter helfen kann.

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Das Objekt bewege ich mit dem Character Controller. Nach dem ich das Objekt etwas nach vorne bewegt habe teleportiert sich das Objekt einfach in die Luft und bleibt da stehen. Weiter bewegen kann ich es jedoch schwebt es in der Luft einfach weiter. Und Negative Gravitation habe ich auch nicht eingestellt.

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zitat

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CharacterMovement : MonoBehaviour
{

    //Puvlix Variables
    public float speed;
    public float gravity;

    //Private Variables
    private CharacterController _characterController;
    private float currentGravity = 0f;


    // Start is called before the first frame update
    void Start()
    {

        _characterController = gameObject.GetComponent<CharacterController>();
    }

    // Update is called once per frame
    void Update()
    {
        Vector3 finalMovement = Movement() + ApplyGravity();
        _characterController.Move(finalMovement * Time.deltaTime);
    }

    Vector3 ApplyGravity()
    {

        Vector3 gravityMovement = new Vector3(0, -currentGravity, 0);
        currentGravity += gravity * Time.deltaTime;

        if (_characterController.isGrounded)
        {
            if (currentGravity > 1f)
                currentGravity = 1f;
        }

        return gravityMovement;

    }


    Vector3 Movement()
    {
        Vector3 moveVector = Vector3.zero;

        moveVector += transform.forward * Input.GetAxis("Vertical");
        moveVector += transform.right * Input.GetAxis("Horizontal");

        moveVector *= speed;


        return moveVector;

Sorry hab ich vergessen. ^^

 

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...