private void SpawnIsles() { // OBJECT LAYER SPAWN for (int i = 0; i < objectsInLayer; i++) { int objectID = Random.Range(0, Controler.ParallaxIsles.Length); Object paralaxObject = Controler.ParallaxIsles[objectID]; GameObject go = (GameObject)Instantiate(paralaxObject, transform) as GameObject; SpriteRenderer renderer = go.GetComponent <SpriteRenderer>(); SpriteRenderer childrenRenderer = go.transform.GetChild(0).GetComponent <SpriteRenderer>(); // Position go.transform.position = CalculatePosition(i); go.transform.localScale = CalculateScale(go.transform.localScale); // Layer SetSpriteRenderers(ref renderer, ref childrenRenderer, go.transform.position.z); // Add to the List ParallaxElement element = go.GetComponent <ParallaxElement>(); element.SetLayer(this); parallaxElements.Add(go.GetComponent <ParallaxElement>()); } }
private void SpawnClouds() { for (int i = 0; i < cloudsNumber; i++) { int cloudID = Random.Range(0, Controler.ParallaxClouds.Length); Object cloudObj = Controler.ParallaxClouds[cloudID]; GameObject cloudGo = (GameObject)Instantiate(cloudObj, transform) as GameObject; cloudGo.transform.localScale = CalculateCloudScale(cloudGo.transform.localScale); int posXnb; int posYnb; posXnb = Mathf.CeilToInt(layerRect.width / minSpaceBetweenClouds.x); posYnb = Mathf.CeilToInt(layerRect.height / minSpaceBetweenClouds.y); int posXid; int posYid; posXid = Random.Range(0, posXnb); posYid = Random.Range(0, posYnb); Vector3 pos = cloudGo.transform.position; pos.x = layerRect.xMin + posXid * minSpaceBetweenClouds.x; pos.y = layerRect.yMin + posYid * minSpaceBetweenClouds.y + cloudsOffsetY; pos.z = (parallaxElements.Count > 0) ? (parallaxElements[parallaxElements.Count - 1].transform.position.z + 5) : (transform.position.z + 20); cloudGo.transform.position = pos; SpriteRenderer renderer = cloudGo.GetComponent <SpriteRenderer>(); renderer.sortingOrder = (int)(-pos.z) + Controler.MinSortingOrder + i; ParallaxElement element = cloudGo.GetComponent <ParallaxElement>(); element.SetLayer(this); parallaxElements.Add(cloudGo.GetComponent <ParallaxElement>()); } }