コード例 #1
0
        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);
            }
        }
コード例 #2
0
            public void Spawn()
            {
                var spawned = PoolController.SpawnFromGroup(grp, type, type + id, null, pos, rot, null);

                SceneSerializer ss = spawned.GetComponent <SceneSerializer>();

                ss.__SetID(id);
            }
コード例 #3
0
            public void Spawn()
            {
                Transform t = PoolController.Spawn(grp, type, type + id, null, pos, rot);

                SceneSerializer ss = t.GetComponent <SceneSerializer>();

                ss.__SetID(id);
            }
コード例 #4
0
        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();
            }
        }