Пример #1
0
 void Init()
 {
     m_voxelTerrain = VFVoxelTerrain.self;
     if (m_voxelTerrain != null)
     {
         gameObject.transform.parent = m_voxelTerrain.gameObject.transform;
     }
 }
Пример #2
0
//	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);
    }
Пример #3
0
    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();
    }
Пример #4
0
    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();
    }
Пример #5
0
 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;
             }
         }
     }
 }