/// <summary> /// actualiza el chunk: malla renderizada y malla del colisionador /// </summary> public void UpdateThisChunk() { if (_heightMapAndColorArrayHaveStored) { // distancia entre el jugador y el borde más cercano (al jugador) <= maxima distancia establecida como visible --- > visible = true bool visible = Mathf.Sqrt(_bounds.SqrDistance(_generator.ActualPositionOfPlayer)) <= _generator.MaxDistanceVisibleOfPlayer; if (visible) { //Busqueda el LOD adecuado int actualLOD = locateActualLOD(); //Si el LOD actual es de mayor calidad if (actualLOD == 0) { UpdateColliderOfGameObject(); } //Si el LOD actual cambiar resepcto al lod que se esta mostrando actualmente if (actualLOD != _indexPreviousLOD) { UpdateMeshOfGameObject(actualLOD); } _generator.AddChunkToListOfChunkVisiblesAfterLastUpdate(this); } _gameObject.SetActive(visible); } }