void CheckID(Object obj) { SceneSerializer data = obj as SceneSerializer; //check if we need to generate keys if (mRefs == null || mRefScene != EditorApplication.currentScene) { RegenerateIDs(); } else if (data.id == SceneSerializer.invalidID || mRefs[data.id] != data) { int nid = 1; for (; ; nid++) { if (mRefs.ContainsKey(nid)) { if (mRefs[nid] == null) //was deleted for some reason { mRefs.Remove(nid); break; } } else { break; } } data.__SetID(nid); mRefs.Add(nid, data); EditorUtility.SetDirty(data); } }
public void Spawn() { var spawned = PoolController.SpawnFromGroup(grp, type, type + id, null, pos, rot, null); SceneSerializer ss = spawned.GetComponent <SceneSerializer>(); ss.__SetID(id); }
public void Spawn() { Transform t = PoolController.Spawn(grp, type, type + id, null, pos, rot); SceneSerializer ss = t.GetComponent <SceneSerializer>(); ss.__SetID(id); }
void CheckID(Object obj) { SceneSerializer data = obj as SceneSerializer; //check if we need to generate keys if (mRefs == null || mRefScene != EditorSceneManager.GetActiveScene().name) { RegenerateIDs(); } else if (data.id == SceneSerializer.invalidID || mRefs[data.id] != data) { int nid = 1; for (; ; nid++) { if (mRefs.ContainsKey(nid)) { if (mRefs[nid] == null) //was deleted for some reason { mRefs.Remove(nid); break; } } else { break; } } data.__SetID(nid); mRefs.Add(nid, data); //don't want to undo this //TODO: can't really determine which scene this object belongs to, just mark them all... EditorSceneManager.MarkAllScenesDirty(); } }