- Home /
Upload level details, variable always null.
I'm having a bit of of a trouble with my code. I wanted to check if a certain variable of a certain type could be null if not initialized. I'm afraid in this case it's always null. can anyone help me?
using UnityEngine;
using System.Collections;
public class AppManager : MonoBehaviour {
public GameObject GameController_Obj;
private GameController_V3 GameController_Script;
SceneList LevelList= new SceneList();
public LevelStruct Level_1=new LevelStruct();
// Use this for initialization
void Start () {
Level_1=LevelList.LevelPick (1);
GameController_Script = GameController_Obj.GetComponent<GameController_V3> ();
// GameController_Script.LevelDetails = Level_1;
//GameController_Script.SetLVLDetailvs(Level_1);
//GameController_Script.LevelDetails.CopyLevel (Level_1);
}
// Update is called once per frame
void Update () {
if (GameController_Script.LevelDetails==null) {
GameController_Script.LevelDetails = Level_1;
}
}
}
the variable in question is "LevelDetails" of the type LevelStruct.
using UnityEngine;
using System.Collections;
public class LevelStruct : MonoBehaviour {
public string Name;
public int Number;
public int Lives;
public CameraPosSctruct GameCameraPos;
public CameraPosSctruct MenuCameraPos;
public LevelStruct(){
Name = "";
Number = new int();
Lives = new int();
GameCameraPos = new CameraPosSctruct ();
MenuCameraPos = new CameraPosSctruct ();
}
public LevelStruct(string Name_, int Number_, int Lives_, CameraPosSctruct GameCameraPos_,CameraPosSctruct MenuCameraPos_){
Name = Name_;
Number = Number_;
Lives = Lives_;
GameCameraPos = GameCameraPos_;
MenuCameraPos = MenuCameraPos_;
}
public void CopyLevel(LevelStruct FromLVL){
Name = FromLVL.Name;
Number = FromLVL.Number;
Lives = FromLVL.Lives;
GameCameraPos = FromLVL.GameCameraPos;
MenuCameraPos = FromLVL.MenuCameraPos;
}
}
I really would like your help.
And thank you in advance.
PS: And I would appreciate if anyone can suggest a better way to get rid of that warning about "new Keyword".
You should not create constructors on classes[LevelStruct in your case] derived from $$anonymous$$onobehaviour. Since you are using LevelStruct in App$$anonymous$$anager and is more of a model class, you dont need LevelStruct to inherit $$anonymous$$onobehaviour.
You can read through this post. http://answers.unity3d.com/questions/862032/c-constructor-in-monobehaviour.html