public override FlyingCube Clone(Transform parent, Vector3 pos, Vector3 vel) { StreamingCube cube = null; //Before we clone, let's see if we can recycle a clone... if (m_inactiveStreamingClones.Count > 0) { cube = m_inactiveStreamingClones[0]; m_inactiveStreamingClones.Remove(cube); Transform cubeTrans = cube.transform; cubeTrans.SetParent(parent); cubeTrans.position = pos; cube.gameObject.SetActive(true); } else { cube = (StreamingCube)Instantiate(this, pos, Quaternion.identity, parent); } cube.Velocity = vel; return(cube); }
IEnumerator SpawnStreamingCube() { ClipPlanePoints clipPoints = ClipPlanePoints.Instance; Camera camera = clipPoints.Camera; Vector3 cubeVel = camera.transform.up * m_streamCubeSpeed; do { for (int i = 0, count = m_spawnIndices.Length; i < count; ++i) { if (m_spawnIndices[i]) { SpawnStreamingCube(i, cubeVel); } else if (m_lastSpawnIndices[i]) { StreamingCube.CleanupAll(i); } m_lastSpawnIndices[i] = m_spawnIndices[i]; } yield return(new WaitForSeconds(m_streamCubeSpawnTime)); } while (AppManager.IsInAmbientMode); CLeanupAllStreamingCubes(); ResetAllIndices(); m_streamCubes = null; }
//Cubes that have already been streamed in... public void CLeanupAllStreamingCubes() { for (int i = 0, count = m_spawnIndices.Length; i < count; ++i) { StreamingCube.CleanupAll(i); } }
void SpawnStreamingCube(int index, Vector3 vel) { Vector3 cubePos = m_streamCubePositions[index]; StreamingCube cube = (StreamingCube)m_streamCubePref.Clone( transform, cubePos, vel); cube.SectionIndex = index; }
public override void InitPool(Transform parent) { if (m_inactiveStreamingClones == null) { StreamingCube cube = null; //First time initialize to number of twitter feeds... m_inactiveStreamingClones = new List <StreamingCube>(); for (int i = 0, count = TwitterManager.Instance.NumImgTweets; i < count; ++i) { cube = (StreamingCube)Instantiate(this, parent); cube.Recycle(); } } }