मैं सुंदर गूंगा स्थिति में फंस गया: मैं सामान्य वर्ग का नया उदाहरण बना रहा हूं लेकिन यह "अजीब" शून्य देता है।एकता: नया वर्ग उदाहरण बनाते समय शून्य
Rule rule2 = new Rule(); // initiate the class
Debug.Log(rule2); //1st debug
rule2.RuleSetup(r: "CaughtEnough", li: 0); //setting up the parameters
Debug.Log(rule2.rule); //2nd debug
1 डिबग मुझे पैरामीटर सेट अप काम करता है एक ही समय में
null
UnityEngine.Debug:Log(Object)
देता है, और 2 डिबग मुझे
CaughtEnough
UnityEngine.Debug:Log(Object)
जो क्या उचित कक्षा में होना चाहिए है देता है उदाहरण।
एक (केवल अब तक) मुद्दा यह है कि यह मेरे लिए ला रहा है कि अगर इस नियम वर्ग उदाहरण whitin मैं
Invoke(rule, 0f);
फोन यह मेरे NullReferenceException त्रुटि देता है। लेकिन साथ ही वास्तविक कार्य
CaughtEnough();
ठीक काम करता है और अपेक्षित काम करता है।
कोई विचार क्या समस्या का स्रोत हो सकता है और इसे कैसे दूर किया जा सकता है?
युपीडी भी नियम वर्ग की स्थापना के भाग पोस्टिंग, पूछा, जैसे कि यह स्पष्ट है
public class Rule : MonoBehaviour {
public string rule;
public int leftInt;
public Dictionary<string, int> leftDict;
public float countdown;
public int outcome;
public CatchManager catchMan;
public Net net;
// Use this for initialization
void Start() {
RuleSetup();
}
public void RuleSetup(string r = "NoRule", int li = 0, Dictionary<string, int> ld = null, float cd = float.PositiveInfinity) {
rule = r;
leftInt = li;
leftDict = ld;
countdown = cd;
}
.....
प्रतिस्थापित बस की जाँच करता है, तो rule2 अगर (rule2 == नल) {Debug.Log करके रिक्त है ("शून्य")} else {Debug.Log ("शून्य नहीं")}। अपनी नियम कक्षा भी पोस्ट करें ताकि हम देख सकें कि नियमसेट क्या है। – Programmer
धन्यवाद, मैंने आपके सुझाव के अनुसार चेक किया है, और नियम 2 वास्तव में शून्य है। – Alex