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); }
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); }
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); }
void Awake() { if (instance != null && instance != this) { Destroy(gameObject); } else { instance = this; DontDestroyOnLoad(instance); } }
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"); } }
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); }