Unity3D: Optionale Parameter

Dieser Artikel wurde von Do, Hoang Viet am Sonntag, 1. Dezember 2013 verfasst. Aktualisiert: 29.01.2014 23:05:02

Unity3D (4.3.1) unterstützt keine optionale Parameter, wenn die betroffene Skriptdatei in einem Namespace definiert wird.

Leider wird hierfür keine geeignete Fehlermeldung angezeigt, sondern die Skriptdatei als fehlerhaft markiert:

The associated script can not be loaded. Please fix any compile errors and assign a valid script.

Rekonstruktion

In dem nachfolgendem Codeausschnitt würde Unity3D die obrige Fehlermeldung generieren.

using System.Linq;
using UnityEngine;

namespace Assets.Scripts.GameObjects {
    public class Jewel : MonoBehaviour {
        public void BeginShift(Jewel optionalJ =null) {
            // ...
        }
    }
}

Lösungsansätze

Das Problem lässt sich beheben, indem wir den optionalen Parameter ersetzen.

using System.Linq;
using UnityEngine;

namespace Assets.Scripts.GameObjects {
    public class Jewel : MonoBehaviour {
        public void BeginShift(Jewel optionalJ) {
            // ...
        }
    }
}

Alternativ müssten wir auf Namespaces verzichten.

using System.Linq;
using UnityEngine;

public class Jewel : MonoBehaviour {
    public void BeginShift(Jewel optionalJ) {
        // ...
    }
}

Das sind die beiden Lösungen, die wir auf die schnelle gefunden haben.

 
blog comments powered by Disqus

Google Anzeigen

Neusten Blogeinträgen

  • CSS: Animationen

    CSS3 bietet von Haus aus Möglichkeiten zur Definition von Animationen über die Property animation. Wie es funktioniert zeigen wir in diesem Artikel.

  • CSS: Alternierende Tabellenzeilen

    Um die Lesbarkeit von Tabellen zu steigern, bietet die CSS die Möglichkeit Tabellenzeilen alternierend zu färben. Wie das funktioniert zeigen, wir ...

  • Unity3D: Konsolenausgabe formatieren

    Die Unitykonsole ist einer der meistgenutzten Feature wenn es bei Unity um Fehlersuche und -behandlung geht. Sie wird dabei schnell voll und verli ...

  • Unity3D: Singleton für langsame Operationen

    Operationen wie Object.FindObjectOfType werden in der Dokumentation von Unity3D Entwickler selbst als sehr langsam beschrieben. Aus dem Grund wird ...

Popular Threads

Share it on your network