Esempio n. 1
0
    private void Update()
    {
        /*
         * if(gameObject.renderer.enabled == false)
         * {
         *      //Debug.Log("[TerrainLOD] We should not call Update for disabled LODs!");
         *      return;
         * }*/

        if (currentTimeToInterval <= 0.0f)
        {
            float distanceFromObject = Vector2.Distance(new Vector2
                                                            (Camera.main.transform.position.x, Camera.main.transform.position.z),
                                                        new Vector2(gameObject.transform.position.x, gameObject.transform.position.z));

            if (distanceFromObject < DistanceLOD1 && LOD != LOD_LEVEL.LOD0)
            {
                LOD          = LOD_LEVEL.LOD0;
                LOD0.enabled = true;
                LOD1.enabled = false;
                LOD2.enabled = false;
                //Debug.Log("LOD0");
            }
            else if (distanceFromObject >= DistanceLOD1 && distanceFromObject < DistanceLOD2 && LOD != LOD_LEVEL.LOD1)
            {
                LOD          = LOD_LEVEL.LOD1;
                LOD0.enabled = false;
                LOD1.enabled = true;
                LOD2.enabled = false;
                //Debug.Log("LOD1");
            }
            else if (distanceFromObject >= DistanceLOD2 && LOD != LOD_LEVEL.LOD2)
            {
                LOD          = LOD_LEVEL.LOD2;
                LOD0.enabled = false;
                LOD1.enabled = false;
                LOD2.enabled = true;
                //Debug.Log("LOD2");
            }

            // Reset check timer.
            currentTimeToInterval = UpdateInterval;
        }
        else
        {
            currentTimeToInterval -= Time.deltaTime;
        }
    }
Esempio n. 2
0
 public void SetLODLevel(LOD_LEVEL lodLevel)
 {
     m_LODLevel = lodLevel;
     _OnLODChanged();
 }