2016-06-03 6 views
0

ich meine Spieler springen aber im immer einen Fehler in fixedUpdate mit rb.AddForce bin versucht zu machen, machen jedoch „nicht auf AddForce zuweisen, da es sich um eine Methodengruppe ist“ gearbeitet, bevor ich hinzugefügt die sprunggeschwindigkeit und sprungfunktion wie kann ich das machen?Wie ein Spieler springen in der Einheit mit C#

Code:

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

public class PlayerController : MonoBehaviour { 

public float speed; //Creates Speed Variable 
public Text countText; //Creates Count Text Variable 
public Text winText; //Creates Win Text Variable 
public float JumpSpeed; 

private Rigidbody rb; //Creates Rigidbody Variable 
private int count; //Creates Count Variable 

void Start() 
{ 
    rb = GetComponent<Rigidbody>(); //sets variable for Rigidbody 
    count = 0; 
    SetCountText(); 
    winText.text = ""; 
} 

void FixedUpdate() //Controls 
{ 
    float moveHorizontal = Input.GetAxis ("Horizontal"); 
    float moveVertical = Input.GetAxis ("Vertical"); 
    float moveForward = Input.GetAxis ("Forward"); 

    Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical); 

    rb.AddForce = (movement * speed); 

    if (Input.GetKeyUp (KeyCode.Space)) 
    { 
     JumpSpeed = 5.0f; 
     Vector3 jump = new Vector3 (0.0f, moveForward, 0.0f); 
    } 

} 

void OnTriggerEnter(Collider other) //Collect Items 
{ 
    if (other.gameObject.CompareTag ("Pickup")) { 
     other.gameObject.SetActive (false); 
     count = count + 1; 
     SetCountText(); 
    } 
} 

void SetCountText() //Updates Count Text 
{ 
    countText.text = "Count: " + count.ToString(); 
    if (count >= 8) 
    { 
     winText.text = "You Win!"; //Displays Win Text 
    } 
} 

} 
+0

wie ist, dass anders als R b, AddForce (Bewegungsgeschwindigkeit *); bleow vector3 Bewegung? Edit: nevermind entfernen the = ist der Unterschied – Nirset

+0

Nun, es gibt ein zusätzliches '=' Zeichen. Das soll nicht da sein. '=' ist der Zuweisungsoperator. Sie weisen der Methode rb.AddForce den Wert von '(movement * speed)' zu, was, wie ich in meiner Antwort erläutere, keinen Sinn ergibt. Wenn Sie eine Methode aufrufen möchten, müssen Sie den Operator '()' verwenden und die Parameter zwischen ihnen setzen, wie in meiner Antwort gezeigt. –

Antwort

1

AddForce ist eine Methode, nicht eine Eigenschaft. Methoden müssen aufgerufen werden, Sie ordnen ihnen keine Werte zu. Versuchen Sie

Ansonsten sollten Sie vielleicht einen tieferen Einblick in die Grundlagen der Programmierung haben. Sie können Methoden von Eigenschaften unterscheiden, wie Methodennamen in der Regel mit einem Verb („AddForce“, „Create“ etc.) starten, während Eigenschaften Namen beschreiben, na ja, Eigenschaften (‚Farbe‘, ‚VerticalSpeed‘, ‚Name‘,. ..)

Verwandte Themen