2017-02-18 3 views
1

im Ordner Scripts „Warnung Typ sollte innerhalb Namespace AssembleCSharp deklariert werden“, unter den Vermögenswerten ich eine einfache Datenklasse zu definieren versuchen:MonoDevelop C# in Unity3D versuchen zu verstehen:

Datei: TirggerObject.cs

using UnityEngine; 
public class TriggerObject { 
    public int TriggerID { get; set;} 
    public Vector2 Location { get; set;} 
    public float TriggerRadius { get; set;} 
} 

der Klassenname hat eine Warnung mit ihm verbunden:

soweit ich den AssembleCSharp ist sagen kann: „Warnung Typ sollte innerhalb Namespace‚AssemblyCSharp‘deklariert werden“, wo die Klasse ist definiert. Die einzige Kuriosität, die ich sehe, ist, dass der Lösungsbaum in der Hauptoberfläche von MonoDvelop die Klassendatei "TriggerObject.cs" in der Assembly "Assembly-CSharp" anzeigt. Während die Warnmeldung "AssemblyCSharp" ohne den Bindestrich aufruft.

Ich gehe davon aus, dass ich mit dieser Warnung leben kann, da der Code zu laufen scheint. Aber ich bin überrascht, wie wenig ich über die Versammlungen der Einheit finde und ich kann keinen Hinweis auf diese genaue Warnung finden. Ich finde auch keine klare Erklärung dafür, warum dies nicht bereits im richtigen Zusammenbau ist oder wie ich es in die richtige Versammlung stellen kann.

Ich hasse es nicht, Warnungen zu verstehen. Diese

Antwort

1

ist, weil die Dateien physisch in der Unity Baugruppe ist, aber diese Tatsache ist in Ihrem Code reflektiert. Ich fürchte, das ist die "schlechte automatische Übung" von Unity, wenn Sie Ihre Skripte mit dem Unity Editor erstellen. Wenn Sie neue Dateien über MonoDevelop erstellen, wird der Namespace-Block automatisch generiert.

Die Lösung des Problems ist der Namespace-Block zu Ihrer Datei hinzuzufügen:

namespace AssemblyCSharp { 

    using UnityEngine; 

    public class TriggerObject { 
     public int TriggerID { get; set;} 
     public Vector2 Location { get; set;} 
     public float TriggerRadius { get; set;} 
    } 
} 

Sie können tatsächlich platzieren „mit“ Anweisung innerhalb oder außerhalb des Namespace-Block. Read more about it here.

Bitte beachten Sie, dass der Namespace-Abschnitt in eine Datei hinzugefügt werden Sie alle Ihre Code-Dateien zu ändern, zwingen, die abhängig sind (einfach aufgrund Klasse Sichtbarkeit).

Verwandte Themen