public static void Delete(GameObject g) { PoolToken token = GetPoolToken(g); PoolType poolType = token.poolType; if (poolType == PoolType.RPC || poolType == PoolType.PhotonView) { ObjectPoolRpcManager.Delete(g); } ObjectPoolManager.Delete(g); }
public static GameObject PhotonRpcInstantiateAsSibling(string prefabPath, Vector3 position, Quaternion rotation, object[] data, int siblingTokenId) { InstantiationData i = InstantiationData(prefabPath, position, rotation, data); i.PoolType = PoolType.RPC; var g = ObjectPoolManager.InstantiateAsSibling(i, siblingTokenId); ObjectPoolRpcManager.InstantiateAsSibling(i, siblingTokenId); return(g); }
public static GameObject PhotonRpcInstantiateAsChild(string prefabPath, Vector3 position, Quaternion rotation, object[] data, int parentTokenId) { InstantiationData i = InstantiationData(prefabPath, position, rotation, data); i.PoolType = PoolType.RPC; var g = ObjectPoolManager.Instantiate(i); g.transform.parent = ManagedObjects.Find(parentTokenId).transform; ObjectPoolRpcManager.InstantiateAsChild(i, parentTokenId); return(g); }
public static GameObject PhotonViewInstantiate(string prefabPath, Vector3 position, Quaternion rotation, object[] data) { InstantiationData i = InstantiationData(prefabPath, position, rotation, data); i.PoolType = PoolType.PhotonView; var g = ObjectPoolManager.Instantiate(i); PhotonView[] pvs = g.GetComponents <PhotonView>(); List <int> viewIds = new List <int>(); foreach (PhotonView pv in pvs) { viewIds.Add(pv.viewID); } i.ViewIds = viewIds.ToArray(); ObjectPoolRpcManager.Instantiate(i); return(g); }
public int DefaultMaxPoolSize = 100; //Objects added to a pool beyond its max size will be permanently deleted void Awake() { if (PersistThroughLoad) { DontDestroyOnLoad(this); } ObjectPoolRpcManager.Initialize(); ObjectPoolManager.Initialize(); ManagedObjects.Initialize(); itemsCreated = 0; LocalPools = new Dictionary <string, Pool>(); PhotonViewPools = new Dictionary <string, Pool>(); RPCPools = new Dictionary <string, Pool>(); objectPool = this; PreloadedPool[] poolsArray = GetComponentsInChildren <PreloadedPool>(); if (LogFull) { Debug.Log("Found " + poolsArray.Length + " pools to preload."); } List <PreloadedPool> pools = new List <PreloadedPool>(poolsArray); while (pools.Count > 0) { PreloadedPool p = pools[0]; Pool pool = Pool.InitializePool(this, p.PrefabString, p.PoolType, p.MaxPoolSize, p.PreloadSize, p.gameObject); PoolFromPoolType(p.PoolType)[p.PrefabString] = pool; pool.RenameGameObject(); pools.Remove(p); Destroy(p); } }
void OnDestroy() { ObjectPoolRpcManager.Uninitialize(); ObjectPoolManager.Uninitialize(); ManagedObjects.Uninitialize(); }