//----------------------------------------------------------------------- //Get and return elements to the object pools private void GetElement(string elementType) { EnvironmentElement element = m_PoolsDictionary[elementType].GetObject().GetComponent <EnvironmentElement>(); Vector3 startingPos = m_ElementsStartingPointsDictionary[elementType][element.name]; if (element != null) { element.Activate(backgroundSpeed, startingPos); m_ActiveElementsDictionary[elementType].Add(element); float posBeforeActivateNewElement = (m_BottomRightScreenCornerX * 2) - startingPos.x - GetRandomValue(); m_DistanceBeforeGenerateNewElement[elementType] = posBeforeActivateNewElement; } }
//----------------------------------------------------------------------- //Sun rays effect functions private IEnumerator ActivateSunRay(float time) { yield return(new WaitForSeconds(time)); EnvironmentElement ray = m_SunRayPool.GetObject().GetComponent <EnvironmentElement>(); if (ray != null) { ray.Activate(m_SunRaySpeed, m_TopRightScreenCorner); m_ActiveRay = ray; m_RayLimit = ray.gameObject.transform.Find("Limit").gameObject; m_IsSunRayPlaying = true; } }
IEnumerator InitialiseBackground() { while (backgroundSpeed == 0) { yield return(new WaitForEndOfFrame()); } foreach (var key in m_ElementsKeys) { EnvironmentElement element = m_PoolsDictionary[key].GetObject().GetComponent <EnvironmentElement>(); if (element != null) { Vector3 startingPos = element.transform.position; startingPos.x = Random.Range(-m_BottomRightScreenCornerX, m_BottomRightScreenCornerX); element.Activate(backgroundSpeed, startingPos); m_ActiveElementsDictionary[key].Add(element); float posBeforeActivateNewElement = (m_BottomRightScreenCornerX * 2) - m_ElementsStartingPointsDictionary[key][element.name].x + GetRandomValue(); m_DistanceBeforeGenerateNewElement.Add(key, posBeforeActivateNewElement); } } }
public void SetupBackground() { foreach (var key in m_ElementsKeys) { EnvironmentElement element = m_PoolsDictionary[key].GetObject().GetComponent <EnvironmentElement>(); float posBeforeActivateNewElement; if (element != null) { Vector3 startingPos = element.transform.position; startingPos.x = Random.Range(-m_BottomRightScreenCornerX, m_BottomRightScreenCornerX); element.Activate(m_ElementsSpeed, startingPos); m_ActiveElementsDictionary[key].Add(element); posBeforeActivateNewElement = (m_BottomRightScreenCornerX * 2) - m_ElementsStartingPointsDictionary[key][element.name].x + GetRandomValue(); if (m_DistanceBeforeGenerateNewElement.ContainsKey(key) == false) { m_DistanceBeforeGenerateNewElement.Add(key, posBeforeActivateNewElement); } else { m_DistanceBeforeGenerateNewElement[key] = posBeforeActivateNewElement; } } } }
private void ReturnElement(EnvironmentElement element, string elementType) { m_PoolsDictionary[elementType].ReturnObjectToThePool(element.gameObject); m_ActiveElementsDictionary[elementType].Remove(element); }
private void ReturnRay() { m_SunRayPool.ReturnObjectToThePool(m_ActiveRay.gameObject); m_RayLimit = null; m_ActiveRay = null; }