void Init() { m_voxelTerrain = VFVoxelTerrain.self; if (m_voxelTerrain != null) { gameObject.transform.parent = m_voxelTerrain.gameObject.transform; } }
// RenderTexture rendertex = null; // Use this for initialization void Start() { mNumOneside = (int)(worldSize / texSize); mMinimap = new Texture2D(texSize, texSize, TextureFormat.RGB24, false); mTerrain = VFVoxelTerrain.self; //mEditor = GameObject.Find("Voxel Terrain").GetComponent<VoxelEditor>(); // rendertex = new RenderTexture(512, 512,24); }
void Awake() { self = this; if (GameConfig.IsMultiMode && VoxelTerrainNetwork.Instance != null) { ImportNet(); VoxelTerrainNetwork.Instance.Init(); } int layer = Pathea.Layer.VFVoxelTerrain; VFVoxelChunkGo.DefMat = VFTransVoxelGo._defMat = _defMat; VFVoxelChunkGo.DefLayer = VFTransVoxelGo._defLayer = layer; VFVoxelChunkGo.DefParent = VFTransVoxelGo._defParent = transform; _transGoCreator = new TransvoxelGoCreator(); }
void OnDestroy() { if (_lodDataUpdate != null) { _lodDataUpdate.Stop(); _lodDataUpdate = null; } if (_transGoCreator != null) { _transGoCreator.IsTransvoxelEnabled = false; _transGoCreator = null; } if (SurfExtractor != null) { SurfExtractor.Reset(); } if (_dataLoader != null) { _dataLoader.Close(); } // If something is left over... (in the editor) if (gameObject.transform.childCount > 0) { // Clean up chunks for (int i = gameObject.transform.childCount - 1; i >= 0; --i) { var child = gameObject.transform.GetChild(i).gameObject; DestroyImmediate(child); } } Resources.UnloadUnusedAssets(); TerrainVoxelComplete = false; TerrainColliderComplete = false; bChunkColliderRebuilding = true; self = null; VFVoxelSave.Clean(); }
void FixedUpdate() { if (LodMan != null && LodMan.Observer != null && _frameCnt != Time.frameCount && VFVoxelTerrain.bChunkColliderRebuilding) //water is low prior { _frameCnt = Time.frameCount; Vector3 posCurrent = LodMan.Observer.position; int cx = ((int)posCurrent.x) >> VoxelTerrainConstants._shift; int cy = ((int)posCurrent.y) >> VoxelTerrainConstants._shift; int cz = ((int)posCurrent.z) >> VoxelTerrainConstants._shift; int nOffset = VFVoxelTerrain.OrderedOffsetList.Count; for (int n = 0; n < nOffset; n++) { IntVector3 vecOffset = VFVoxelTerrain.OrderedOffsetList[n]; VFVoxelChunkData chunk = _voxels.readChunk(vecOffset.x + cx, vecOffset.y + cy, vecOffset.z + cz); VFVoxelChunkGo vfgo = VFVoxelTerrain.GenOneCollider(chunk); if (null != vfgo) { vfgo.OnColliderReady(); break; } } } }