2016-04-20 11 views
0

Ich habe nur ein durchschnittliches Wissen über JAVA und vor kurzem wollte ich Einheit ausprobieren. Also, mit einem YT-Tutorial (https://www.youtube.com/watch?v=V7YhzzfiW9c) und einigen guten Hoffnungen, die ich begann, verwendet Unity C#, so dass es in Ordnung war, zu folgen. Aber es schien, dass der Typ auf dem Video die Einheit 4 oder etwas verwendet hatte und seitdem hat er den Befehl: RiggedBody2D.something.etwas; geändert in GetComponent (etwas) ;. Als ich es änderte, bekam ich den CS0115 Fehler. HierC# -Fehler C0115: GetComponent <Rigedbody2D>

ist der Code, den ich verwendet:

using UnityEngine; 
 
using System; 
 

 
public class Player : Entity { 
 

 
    void Start() { 
 
\t 
 
\t } 
 
\t 
 
\t void Update() { 
 

 
     if ((Input.GetKey(KeyCode.Z)) || (Input.GetKey(KeyCode.UpArrow))) { 
 

 
      GetComponent<Rigidbody2D>(transform.position += Vector3.up * speed * Time.deltaTime); 
 

 
     } 
 

 
     if ((Input.GetKey(KeyCode.D)) || (Input.GetKey(KeyCode.RightArrow))) { 
 

 
      GetComponent<Rigidbody2D>(transform.position += Vector3.right * speed * Time.deltaTime); 
 

 
     } 
 

 
     if ((Input.GetKey(KeyCode.S)) || (Input.GetKey(KeyCode.DownArrow))) { 
 

 
      GetComponent<Rigidbody2D>(transform.position += Vector3.down * speed * Time.deltaTime); 
 

 
     } 
 

 
     if ((Input.GetKey(KeyCode.Q)) || (Input.GetKey(KeyCode.LeftArrow))) { 
 

 
      GetComponent<Rigidbody2D>(transform.position += Vector3.left * speed * Time.deltaTime); 
 

 
     } 
 
    } 
 
}

Und dies ist die Fehlermeldung:

Severity Code Beschreibung Projektdatei Zeilenunterdrückungszustand CS1501 Fehler Keine Überlastung für Verfahren 'GetComponent' benötigt 1 Argumente KnightRPG.CSharp C: \ Benutzer \ beheerder \ Dokumente \ KnightRPG \ Assets \ Code \ Entitäten \ Player \ Player.cs 14 Aktiv

Ich weiß nicht, warum das passiert, aber ich würde es Aprikose machen, wenn Sie mir helfen könnten! Tank dich!

-SV

Antwort

1

Wie der Fehler sagt, die Methode GetComponent<T> keine Argumente hat. Es gibt nur einen Verweis auf eine Instanz vom Typ T zurück (wobei T in Ihrem Fall für Rigidbody2D steht). Und Sie versuchen auch eine Zuweisung als Argument an die Funktion zu übergeben, die auch nicht funktioniert, Sie können nur Werte oder Referenzen übergeben.

Sie sollten der Kerl tut, um einen Zeitstempel, wo in dem Video gepostet haben, aber ich fand es auf den ersten Klick: D

Also, er, was zu

übersetzt schreibt

GetComponent<Rigidbody2D>().transform.position += Vector3.up * speed * Time.deltaTime;

in Unity5.

Verwandte Themen