Ejemplo n.º 1
0
    public void SummonTerrain(EarthElement earthElement)
    {
        GameObject terrainSpawned = Instantiate(earthElement.TerrainPrefab,
                                                transform.parent.position + earthElement.SpawnOffset,
                                                Quaternion.identity);

        StartCoroutine(RaiseTerrain(terrainSpawned, earthElement));

        #region Old Implementation of Earth Element
        //Vector3 location;
        /////Terrain Effect
        //if (transform.eulerAngles.y >= 0 && transform.eulerAngles.y <= 180)
        //{
        //	//right
        //	location = new Vector3(transform.position.x + SpawnDistance, transform.position.y, transform.position.z);
        //}
        //else
        //{
        //	location = new Vector3(transform.position.x - SpawnDistance, transform.position.y, transform.position.z);
        //}
        //StartCoroutine(SpawnTerrainChunks(location));
        //GameObject Terrain = Instantiate(TerrainPrefab, location, Quaternion.identity);
        //StartCoroutine(DestroyObject(Terrain, 5.0f));
        #endregion
    }
Ejemplo n.º 2
0
    IEnumerator RaiseTerrain(GameObject terrain, EarthElement earthElement)
    {
        Vector3 originalPosition = terrain.transform.position;
        Vector3 desiredPosition  = originalPosition + new Vector3(0, earthElement.TerrainHeight, 0);

        while (Vector3.Distance(desiredPosition, terrain.transform.position) > 1)
        {
            terrain.transform.position = Vector3.Lerp(terrain.transform.position, desiredPosition, Time.deltaTime);

            yield return(new WaitForEndOfFrame());
        }
        StartCoroutine(DestroyObject(terrain, earthElement.TerrainDuration));
    }