コード例 #1
0
ファイル: MeshTerrain.cs プロジェクト: mengtest/CYMCommon
        public void GenerateMeshTerrain()
        {
            _objects = new List <ObjectData>();
            for (int i = 0; i <= MeshTerrainMeshSourceList.Count - 1; i++)
            {
                if (MeshTerrainMeshSourceList[i].MeshRenderer.GetComponent <MeshFilter>().sharedMesh == null)
                {
                    continue;
                }
                ObjectData o = new ObjectData(MeshTerrainMeshSourceList[i].MeshRenderer, (int)MeshTerrainMeshSourceList[i].TerrainSourceID);
                if (o.IsValid)
                {
                    _objects.Add(o);
                }
            }
            BVH.Build(ref _objects, out _nodes, out Tris, out _finalPrims);
            BVH.BuildLbvhData(_nodes, _finalPrims, out MeshTerrainData.lNodes, out MeshTerrainData.lPrims);

            MeshTerrainData.Bounds = CalculateTerrainBounds();

#if UNITY_EDITOR
            EditorUtility.SetDirty(MeshTerrainData);
#endif
            //GenerateCellCoverage();
            CreateNativeArrays();

            VegetationStudioManager.RefreshTerrainArea(TerrainBounds);
        }
コード例 #2
0
ファイル: RaycastTerrain.cs プロジェクト: d-oglesby/VS
 // ReSharper disable once UnusedMember.Local
 void OnDisable()
 {
     _initDone = false;
     if (AutoAddToVegegetationSystem && Application.isPlaying)
     {
         VegetationStudioManager.RemoveTerrain(gameObject);
     }
     else
     {
         VegetationStudioManager.RefreshTerrainArea(TerrainBounds);
     }
 }
コード例 #3
0
ファイル: RaycastTerrain.cs プロジェクト: d-oglesby/VS
        // ReSharper disable once UnusedMember.Local
        void OnEnable()
        {
            _initDone = true;

            //SetTerrainPosition();

            if (AutoAddToVegegetationSystem && Application.isPlaying)
            {
                VegetationStudioManager.AddTerrain(gameObject, false);
            }
            else
            {
                VegetationStudioManager.RefreshTerrainArea(TerrainBounds);
            }
        }
コード例 #4
0
ファイル: MeshTerrain.cs プロジェクト: mengtest/CYMCommon
        // ReSharper disable once UnusedMember.Local
        void OnEnable()
        {
            _debugMaterial = Resources.Load("MeshTerrainDebugMaterial", typeof(Material)) as Material;

            _initDone = true;


            if (AutoAddToVegegetationSystem && Application.isPlaying)
            {
                VegetationStudioManager.AddTerrain(gameObject, false);
            }
            else
            {
                VegetationStudioManager.RefreshTerrainArea(TerrainBounds);
            }
        }
コード例 #5
0
ファイル: UnityTerrain.cs プロジェクト: d-oglesby/VS
        //// ReSharper disable once UnusedMember.Local
        void OnEnable()
        {
            // if (!Heights.IsCreated) LoadHeightData();
            //if (_nativeManagedFloatArray == null) LoadHeightData();
            RefreshSplatMaps();

            _initDone = true;

            if (AutoAddToVegegetationSystem && Application.isPlaying)
            {
                AddTerrainToVegetationSystem();
            }
            else
            {
                VegetationStudioManager.RefreshTerrainArea(TerrainBounds);
            }
        }
コード例 #6
0
ファイル: UnityTerrain.cs プロジェクト: d-oglesby/VS
 public void RefreshTerrainArea()
 {
     VegetationStudioManager.RefreshTerrainArea(TerrainBounds);
 }
コード例 #7
0
ファイル: RaycastTerrain.cs プロジェクト: d-oglesby/VS
 public void RefreshTerrain(Bounds bounds)
 {
     VegetationStudioManager.RefreshTerrainArea(bounds);
     VegetationStudioManager.ClearCache(bounds);
 }