public void Hide()
 {
     if (qtMesh == null)
     {
         QTManager.Instance.activeTerrain.RemoveFromUpdateList(this);
     }
     else
     {
         qtMesh.Destroy();
         qtMesh = null;
     }
     QTManager.Instance.activeTerrain.activeNodeListArray [lodLevel].Remove(this);
     isDisplay = false;
 }
Пример #2
0
 public void CalculateMesh()
 {
     tempNode = null;
     for (int i = 0; i < updateList.Count; i++)
     {
         tempNode        = updateList [i];
         tempNode.qtMesh = LCQTMesh.CreatObject();
         tempNode.qtMesh.transform.parent      = transform;
         tempNode.qtMesh.transform.position    = transform.position;
         tempNode.qtMesh.meshRenderer.material = mat;
         tempNode.qtMesh.CreatMesh(tempNode.center, tempNode.length, tempNode.GetNeighbourStatusArray(), splitCount);
         //node.qtMesh.CreatMesh (node.center,node.length,new bool[]{false,false,false,false},splitCount);
         tempNode.qtMesh.gameObject.SetActive(true);
     }
     updateList.Clear();
 }
Пример #3
0
 private void Hide(bool isDestroy = false)
 {
     if (qtMesh == null)
     {
         QTManager.Instance.activeTerrain.RemoveFromUpdateList(this);
     }
     else
     {
         qtMesh.gameObject.SetActive(false);
         if (isDestroy)
         {
             qtMesh.Destroy();
             qtMesh = null;
         }
     }
     QTManager.Instance.activeTerrain.activeNodeListArray [lodLevel].Remove(this);
     isDisplay = false;
 }
Пример #4
0
        public void CalculateMesh()
        {
            _tempNode = null;
            for (int i = 0; i < updateList.Count; i++)
            {
                _tempNode        = updateList [i];
                _tempNode.qtMesh = LCQTMesh.CreatObject();
                _tempNode.qtMesh.transform.parent        = transform;
                _tempNode.qtMesh.transform.localPosition = Vector3.zero;
                _tempNode.qtMesh.transform.localRotation = Quaternion.Euler(new Vector3(0f, 0f, 0f));
                _tempNode.qtMesh.meshRenderer.material   = _planet.mat;

                _tempNode.qtMesh.CreatMesh(_tempNode, _tempNode.GetNeighbourStatusArray(), _planet.splitCount);
                //node.qtMesh.CreatMesh (node.center,node.length,new bool[]{false,false,false,false},splitCount);
                _tempNode.qtMesh.gameObject.SetActive(true);
            }
            updateList.Clear();
        }
Пример #5
0
 public static LCQTMesh CreatObject()
 {
     if (PoolManager.Instance.HasPoolObject(typeof(LCQTMesh)))
     {
         LCQTMesh mesh = PoolManager.Instance.TakePoolObject(typeof(LCQTMesh)) as LCQTMesh;
         return(mesh);
     }
     else
     {
         GameObject temp = new GameObject();
         temp.hideFlags = HideFlags.HideInHierarchy;
         LCQTMesh qtmesh = temp.AddComponent <LCQTMesh> ();
         qtmesh.mesh            = new Mesh();
         qtmesh.meshFilter      = temp.AddComponent <MeshFilter>();
         qtmesh.meshFilter.mesh = qtmesh.mesh;
         qtmesh.meshRenderer    = temp.AddComponent <MeshRenderer>();
         qtmesh.meshRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
         qtmesh.meshRenderer.receiveShadows    = false;
         qtmesh.meshCollider            = temp.AddComponent <MeshCollider>();
         qtmesh.meshCollider.sharedMesh = qtmesh.mesh;
         return(qtmesh);
     }
 }