2014-01-17 7 views
30

Ich versuche, diesen Code für NET.reflector zu verwenden. Mit REFLEXIL, ich versuche Code mit diesem zu ersetzen,"Ein Namespace kann nicht direkt Elemente wie Felder oder Methoden enthalten" in Net.Reflector

if(Input.GetKeyDown(KeyCode.Keypad5)) { 
int i = 0; 
Character localPlayer = PlayerClient.GetLocalPlayer().controllable.GetComponent<Character>(); 
foreach (UnityEngine.Object obj2 in UnityEngine.Object.FindObjectsOfType(typeof(LootableObject))) 
{ 
    if (obj2 != null) 
    { 
     i++; 
     LootableObject loot = (LootableObject) obj2; 
     Debug.Log("Loot "+i+": "+loot.transform.position.ToString()); 
     CCMotor ccmotor = localPlayer.ccmotor; 
     if(ccmotor != null && tpPos1 != Vector3.zero) { 
      ccmotor.Teleport(loot.transform.position); 
      Notice.Popup("", "Teleported to "+loot.name, 1.5f); 
     } 
     break; 
    } 
} 

}

Aber es gibt mir einen Fehler, wenn ich zu kompilieren versuchen:

Line: 1 Column: 1 Error Number: CS0116 Error Message: "A namespace does not directly contain members such as fields or methods" 

Dies ist ich Unity Code denken. Ich bin nicht so erfahren. Könnte jemand das für mich reparieren? Oder sag mir, was ich tun soll? Vielen Dank.

+0

Es muss in einer Klasse sein .... –

+1

Und wahrscheinlich innerhalb einer Methode innerhalb dieser Klasse. – Magus

+0

Könnte jemand erklären, was ich mit diesem Code machen müsste? Wie gesagt, ich bin nicht so erfahren. Ich habe das selbst nicht geschrieben. Ich brauche nur Hilfe, wenn etwas mit dem Skript selbst nicht stimmt oder wenn es verschoben werden muss. – user3204732

Antwort

55

Das Snippet, das Sie anzeigen, scheint nicht direkt für den Fehler verantwortlich zu sein. Diese

ist, wie Sie den Fehler verursachen kann:

namespace MyNameSpace 
{ 
    int i; <-- THIS NEEDS TO BE INSIDE THE CLASS 

    class MyClass 
    { 
     ... 
    } 
} 

Wenn Sie nicht sofort sehen, was „draußen“ ist die Klasse, dies aufgrund verlegt oder zusätzliche Schließbügel sein kann (s) }.

+0

Danke, brauchte nur einen Tipp, ob es der Code war oder nicht. Vielen Dank! – user3204732

+0

Dies war hilfreich, weil es mir "gezeigt" hat, dass meine Klasse, die die Klammer schließt, über dem Anfang meiner Methode steht. Ich fange gerade an, Visual Studio 2017 zu verwenden, und es fügt automatisch beide Klammern hinzu, fügt spezifisch die schließende Klammer direkt neben der Öffnung hinzu - die ich nicht verwende (nach Jahren des Verwendens von VS 2008) und I nicht einmal bemerkt habe Ich habe keine Methoden in der Klasse geschrieben! – Doreen