- Home /
DontDestroyOnLoad with not marked parents bug? (steps to reproduce here too!))
Well, i get annoyed with the message: "Some objects were marked as DontDestroyOnLoad, but since their parent game objects were not marked as DontDestroyOnLoad they have been destroyed anyway. If you want to keep them around, please ensure their parent is marked as DontDestroyOnLoad or make sure they are unparented before loading a new level." Problem is - it's lies, their parents are null (only 3 objects exist on all scenes, can't count em wrong!). The thing is - when you create objects dynamically, set them to persist, enable them in OnDisable at some other not persistent object AND enable them just before LoadLevel call - you'll get this message.
Steps to reproduce: Create a project with 2 empty scenes. Add 2 game objects to the first scene. Enter code for the first object:
using UnityEngine;
public class main : MonoBehaviour {
public static GameObject obj;
bool firsttime = true;
void Start () {
if(firsttime) {
firsttime = false;
init();
}
}
public void init() {
DontDestroyOnLoad(this.gameObject);
DontDestroyOnLoad(this);//ffs!
obj = new GameObject("obj");
DontDestroyOnLoad(obj);
obj.active = false;
Debug.Log("parent for " + obj.name + " is " + obj.transform.parent);//null!
}
bool yo = true;
void Update () {
if(Time.time > 1 && yo) {
yo = false;
obj.active = true;//call it here
Application.LoadLevel(1);//next scene
}
}
}
And for the second:
using UnityEngine;
public class sphere : MonoBehaviour {
void OnDisable() {
main.obj.active = true;
}
}
Run in editor - see that red message. Can somebody explain - what's wrong? Is it just a bug? Is ut safe to just ignore it (nothing seems to be destroyed). PS: I'm new to Unity (but work as a programmer for 5 years). PPS: I'm not a native english speaker, so excuse me please for grammar.
Answer by dogaunity · Jun 08, 2012 at 11:37 AM
I'm not a native english speaker too. Thank you for reported this bug! Beacuse of Our game is web game,any error can make browser crash. The "Some objects were..." error puzzle me for few weeks... Finally,I find the bug at EZGUI ScrollList.OnEnable(). When level is loading , don't set any Object which with "DontDestroyOnLoad" active. Thank you again!