Wie bringe ich mit diesem Code den Spieler zum springen?
public class PlayerMovement : MonoBehaviour
{
    [SerializeField] CharacterController controller;
    [SerializeField] float movementSpeed;
    [SerializeField] float jumpStrength;
    [SerializeField] float gravity; 
    float currentGravity = 0f;


    void Start()
    {
        controller = GetComponent<CharacterController>();
    }   


    void Update()
    { 
        Vector3 finalMovement = Movement() + Gravity();
        controller.Move(finalMovement * Time.deltaTime);
    } 



    Vector3 Gravity()
    {
        Vector3 gravityMovement = new Vector3(0, -currentGravity, 0);


        currentGravity += gravity * Time.deltaTime;


        if(controller.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");


        return moveVector * movementSpeed;
    }
}

moveVector += transform.up * Input.GetAxis("Jump"); funktioniert nicht, weil der Spieler unendlich oft springt.

Computer, springen, Technik, Programmieren, Code, CSharp, Informatik, Unity
Unity: Wie kann ich diese Fehlermeldung beheben?

Hallo,

ich habe in meinem Unity-Projekt folgenden Fehler:

Object reference not set to an instance Object.

Er soll sich anscheined in Zeile 83 befinden.

Bitte helft mir. ;)

Mein Code dafür ist:

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

namespace Com.MyCompyny.MyGame
{
  public class PLAYERUI : MonoBehaviour
  {
    #region Private Fields

    [Tooltip("UI TExt to display Player´s Name")]
    [SerializeField]
    private Text playerNameText;

    [Tooltip("UI Slider to display Player´s Health ")]
    [SerializeField]
    private Slider playerHEalthSlider;

    private PlayerManager target;

    [Tooltip("Pixel offset from the player target")]
    [SerializeField]
    private Vector3 screenOffset = new Vector3(0f, 30f, 0);

    float charaterControllerHeight = 0f;

    Transform targetTransform;

    Renderer targetRenderer;

    CanvasGroup _canvasgroup;

    Vector3 targetPosition;

    #endregion

    #region MonoBehaviour Callbacks

    private void Awake()
    {
      _canvasgroup = this.GetComponent<CanvasGroup>();
      this.transform.SetParent(GameObject.Find("Canvas").GetComponent<Transform>(), false);
    }

    private void LateUpdate()
    {
      if (targetRenderer != null)
      {
        this._canvasgroup.alpha = targetRenderer.isVisible ? 1f : 0f;
      }

      if (targetTransform != null)
      {
        targetPosition = targetTransform.position;
        targetPosition.y += charaterControllerHeight;
        this.transform.position = Camera.main.WorldToScreenPoint(targetPosition) + screenOffset;
      }
    }

    void Update()
    {
      if (playerHEalthSlider != null)
      {
        playerHEalthSlider.value = target.Health;
      }

      if (target == null)
      {
        Destroy(this.gameObject);
        return;
      }
    }

    #endregion

    #region Public Methods

    public void SetTarget(PlayerManager _target)
    {
      targetTransform = this.target.GetComponent<Transform>();
      targetRenderer = this.target.GetComponent<Renderer>();
      CharacterController charactercontroller = _target.GetComponent<CharacterController>();

      if (charactercontroller != null)
      {
        charaterControllerHeight = charactercontroller.height;
      }

      if (_target == null)
      {
        Debug.LogError("<Color=Red><a>Missing</a></Color> PlayMakerManager target for PlayerUI.SetTarget.", this);
        return;
      }

      target = _target;

      if (playerNameText != null)
      {
        playerNameText.text = target.photonView.Owner.NickName;
      }
    }

    #endregion

    void Start()
    {
    }

    // Update is called once per frame
  }
}
CSharp, Unity
Unity Compiler Fehler ohne Grund?

Hi! Ich habe da so zwei Compiler Fehler:

 error CS1002: ; expected
 error CS1513: } expected

Dann schaue ich in VS rein und keine Fehler kommen. Sonst kommen immer Fehler. Ich habe mir den Code schon 6 mal angeschaut und nichts gefunden.

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


public class VitusUndLunas : MonoBehaviour
{
	public float HP;
	public bool ErsterAbschuss;
	public GameObject Spieler;
	public bool SpielerCheck;
	public GameObject Fadenkreuz;
	public GameObject ZungenAngriff;
	public GameObject Vitus;
	Vector2 FadenkreuzPos;
    // Start is called before the first frame update
    void Start()
    {
		//Variablen setzen
		SpielerCheck = true;
		ErsterAbschuss = false;
        HP = 1;
    }


    // Update is called once per frame
    void Update()
    {
		//Checkt, ob der Spieler in der Nähe ist
		if(gameObject.name == "Vitus"){
		if (transform.position.x - Spieler.transform.position.x > -35f && transform.position.x - Spieler.transform.position.x < 0f || transform.position.x - Spieler.transform.position.x < 35f && transform.position.x - Spieler.transform.position.x > 0f && Spieler.GetComponent<Spieler>().status != "Menu" && SpielerCheck == true)
        {
			SpielerCheck = false;
			int Warten = Random.Range(2, 10);
			Invoke("Schuss", Warten);
        }
		//Macht, dass die Position immer gleich bleibt
		if(gameObject.name == "Vitus"){
		 transform.position = new Vector3(2328f, 67.33867f, 0f);
		}
		else{
			if(gameObject.name == "Lunas"){
				transform.position = new Vector3(2663.21f, 259.17f, 583.3203f);
			}
		}
		//Kontrolliert, ob er schonmal abgeschossen wurde
		if(ErsterAbschuss == false){
			HP = 1;
		}
		//Kontrolliert, ob er tot ist
        if(HP == 0 || HP < 0){
			Destroy(gameObject);
		}
	   }
    }
	//Wenn er abgeschossen wurde...
	void OnCollisionEnter2D(Collision2D collision){
		if(gameObject.name == "Vitus"){
		  if(collision.gameObject.name == "BGSchuss"){
		  HP -= 0.001f;
		  ErsterAbschuss = true;
		  }
		}
	}
	//Wenn er schießt...
	void Schuss(){
		GameObject Schießen = GameObject.Instantiate(Fadenkreuz);
		FadenkreuzPos = Schießen.transform.position;
		Invoke("SchussVorbei", 2f);
	}
	void SchussVorbei(){
		ZungenAngriff.SendMessage("ZungenAngriffSchuss");
		SpielerCheck = true;
	}
	void ZungenAngriffSchuss(){
		transform.LookAt(FadenkreuzPos.z));
	}
}

Könnte jemand mir helfen? Grüße, Tjovo.

Computer, Programmieren, C Sharp, Spiele entwicklung, Spiele entwickeln, Unity, unity 2d, Spiele und Gaming
Unity c# Fehler?

Hallo,

das Problem ist, dass immer ein random block destroyed wird was ist der Fehler daran, wie kann ich das besser machen ohne immer else if, else iif zu schreiben?

    void Update()
    {
            if (Input.GetMouseButtonDown(0))
            {
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit hit;
                if (Physics.Raycast(ray, out hit))
                {
                    //Select stage    
                    if(block)
                    {
                        Destroy(this.block);
                    }
                    else if(block1)
                    {
                    Destroy(this.block1);
                    }
                    else if(block2)
                    {
                    Destroy(this.block2);
                    }
                    else if(block3)
                    {
                    Destroy(this.block3);
                    }
                    else if(block4)
                    {
                    Destroy(this.block4);
                    }
                    else if(block5)
                    {
                    Destroy(this.block5);
                    }
                    else if(block6)
                    {
                    Destroy(this.block6);
                    }
                    else if(block7)
                    {
                    Destroy(this.block7);
                    }
                    else if(block8)
                    {
                    Destroy(this.block8);
                    }
                    else if(block9)
                    {
                    Destroy(this.block9);
                    }
                    else if(block10)
                    {
                    Destroy(this.block10);
                    }
                    else if(block11)
                    {
                    Destroy(this.block11);
                    }
                    else if(block12)
                    {
                    Destroy(this.block12);
                    }
                    else if(block13)
                    {
                    Destroy(this.block13);
                    }
                    else if(block14)
                    {
                    Destroy(this.block14);
                    }
                    else if(block15)
                    {
                    Destroy(this.block15);
                    }
                    else if(block16)
                    {
                    Destroy(this.block16);
                    }
                    else if(block17)
                    {
                    Destroy(this.block17);
                    }
                    else if(block18)
                    {
                    Destroy(this.block18);
                    }
            }
        }
    }


vielen dank im voraus!

Computer, Technik, Programmieren, Programmierung, CSharp, Technologie, Unity, CSharp Programmieren, CSharp Programmierung

Meistgelesene Fragen zum Thema Unity