Ejemplo n.º 1
0
        public static T GetOrCreateUniqueGameObject <T>()
            where T : ScriptComponent
        {
            bool hadInstance = UniqueGameObject <T> .HasInstance;

            if (!hadInstance && AGXUnity.Utils.PrefabUtils.IsEditingPrefab)
            {
                Debug.LogWarning($"Invalid to create {typeof( T ).FullName} while editing prefabs.");
                return(null);
            }

            if (UniqueGameObject <T> .Instance == null)
            {
                UniqueGameObject <T> .ResetDestroyedState();
            }

            T obj = UniqueGameObject <T> .Instance;

            if (!hadInstance && obj != null)
            {
                Undo.RegisterCreatedObjectUndo(obj.gameObject, "Created " + obj.name);
            }

            return(obj);
        }
Ejemplo n.º 2
0
    public UniqueGameObject loadMnemonic(string typeName, string uid, Vector3 position, Vector3 rotation)
    {
        UniqueGameObject uniqueSpawn = null;
        //GameObject mnemonic = new GameObject();
        Object mnemonic = new Object();
        bool   result   = mnemonicDict.TryGetValue(typeName, out mnemonic);

        if (!result)
        {
            Debug.Log("Couldn't find mnemonic object of typeid: " + typeName);
        }
        else
        {
            if (!uidSet.Contains(uid))
            {
                GameObject spawn = (GameObject)Instantiate(mnemonic, position, Quaternion.Euler(rotation)) as GameObject;
                uniqueSpawn = new UniqueGameObject(spawn, uid, palaceUserID, typeName);
                spawnedObjects.Add(uniqueSpawn);

                //for when objects are loaded at start of game
                string[] temp = uid.Split(' ');
                if (temp[0].Equals(userID))   //uid tracker is local to each user, not all users
                {
                    int uidint = int.Parse(temp[1]);
                    if (uidint > uidTracker)
                    {
                        uidTracker = uidint;
                    }
                }
            }
        }
        return(uniqueSpawn);
    }
Ejemplo n.º 3
0
    public UniqueGameObject placeMnemonic(string typeName)
    {
        Vector3          forward     = InputTracking.GetLocalRotation(VRNode.CenterEye) * cam.transform.forward;
        Vector3          spawnPos    = cam.transform.position + forward * 2;
        UniqueGameObject uniqueSpawn = null;
        //GameObject mnemonic = new GameObject();
        Object mnemonic = new Object();
        bool   result   = mnemonicDict.TryGetValue(typeName, out mnemonic);

        if (!result)
        {
            Debug.Log("Couldn't find mnemonic object of typename: " + typeName);
        }
        else
        {
            uidTracker++;
            string uid = userID + " " + uidTracker.ToString();
            if (!uidSet.Contains(uid))
            {
                GameObject spawn = (GameObject)Instantiate(mnemonic, spawnPos, Quaternion.identity) as GameObject;
                uniqueSpawn = new UniqueGameObject(spawn, uid, palaceUserID, typeName);
                spawnedObjects.Add(uniqueSpawn);
                uidSet.Add(uid);
                FirebaseHandler database = GetComponent <FirebaseHandler>();
                database.writeUniqueGameObject(uniqueSpawn);
            }
            else
            {
                Debug.Log("uidTracker broken - uid already exists");
            }
        }
        return(uniqueSpawn);
    }
Ejemplo n.º 4
0
 void Awake()
 {
     if (instance != null && instance != this)
     {
         Destroy(gameObject);
     }
     else
     {
         instance = this;
         DontDestroyOnLoad(instance);
     }
 }
Ejemplo n.º 5
0
    public void addMnemonicFromMenu(string typeName, GameObject spawn)
    {
        uidTracker++;
        string uid = userID + " " + uidTracker.ToString();

        if (!uidSet.Contains(uid))
        {
            UniqueGameObject uniqueSpawn = new UniqueGameObject(spawn, uid, palaceUserID, typeName);
            spawnedObjects.Add(uniqueSpawn);
            uidSet.Add(uid);
            FirebaseHandler database = GetComponent <FirebaseHandler>();
            database.writeUniqueGameObject(uniqueSpawn);
        }
        else
        {
            Debug.Log("uidTracker broken - uid already exists");
        }
    }
Ejemplo n.º 6
0
        public static T GetOrCreateUniqueGameObject <T>()
            where T : ScriptComponent
        {
            bool hadInstance = UniqueGameObject <T> .HasInstance;

            if (UniqueGameObject <T> .Instance == null)
            {
                UniqueGameObject <T> .ResetDestroyedState();
            }

            T obj = UniqueGameObject <T> .Instance;

            if (!hadInstance && obj != null)
            {
                Undo.RegisterCreatedObjectUndo(obj.gameObject, "Created " + obj.name);
            }

            return(obj);
        }