Exemplo n.º 1
0
        /// <summary>
        /// Clone
        /// </summary>
        public ResDescCollection Clone(GameObject cloned)
        {
            var data = new ResDescCollection();

            data.arrMesh = new ResDescMesh[arrMesh.Length];
            for (int i = 0; i < arrMesh.Length; ++i)
            {
                data.arrMesh[i] = (ResDescMesh)arrMesh[i].Clone(cloned);
            }

            data.arrSkinnedMesh = new ResDescSkinnedMesh[arrSkinnedMesh.Length];
            for (int i = 0; i < arrSkinnedMesh.Length; ++i)
            {
                data.arrSkinnedMesh[i] = (ResDescSkinnedMesh)arrSkinnedMesh[i].Clone(cloned);
            }

            data.arrTexture = new ResDescTexutre[arrTexture.Length];
            for (int i = 0; i < arrTexture.Length; ++i)
            {
                data.arrTexture[i] = (ResDescTexutre)arrTexture[i].Clone(cloned);
            }

            data.arrLightMap = new ResDescLightMap[arrLightMap.Length];
            for (int i = 0; i < arrLightMap.Length; ++i)
            {
                data.arrLightMap[i] = (ResDescLightMap)arrLightMap[i].Clone(cloned);
            }

            data.arrColliderMesh = new ResDescColliderMesh[arrColliderMesh.Length];
            for (int i = 0; i < arrColliderMesh.Length; ++i)
            {
                data.arrColliderMesh[i] = (ResDescColliderMesh)arrColliderMesh[i].Clone(cloned);
            }
            return(data);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 优化草和树资源快速检索
        /// </summary>
        static public ResRef LoadGrass(int nGrassID, ResDescCollection desc)
        {
            int nGrass = _sceneGrass.Length;

            if (nGrassID >= 0 && nGrassID < _sceneGrass.Length)
            {
                _sceneGrass[nGrassID].OnComplete(desc);
            }
            return(ResRef.Null);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="data"></param>
        public void Init(ResDescCollection data)
        {
            _data = data;
            int nCount = _data.arrMesh.Length;

            arrMesh = new ResRef[nCount];

            nCount         = _data.arrSkinnedMesh.Length;
            arrSkinnedMesh = new ResRef[nCount];

            nCount     = _data.arrTexture.Length;
            arrTexture = new ResRef[nCount];

            nCount      = _data.arrLightMap.Length;
            arrLightMap = new ResRef[nCount];
        }
Exemplo n.º 4
0
        /// <summary>
        /// 按默认加载完流程处理
        /// </summary>
        /// <param name="resCollection"></param>
        public void OnComplete(ResDescCollection resCollection)
        {
            if (!_isLoaded)
            {
                return;
            }

            // texture
            for (int i = 0; i < resCollection.arrTexture.Length; ++i)
            {
                var desc = resCollection.arrTexture[i];
                if (arrTexture[i].res.isLoaded)
                {
                    desc.ApplyRes(arrTexture[i].res.obj);
                }
            }

            // Mesh
            for (int i = 0; i < resCollection.arrMesh.Length; ++i)
            {
                var desc = resCollection.arrMesh[i];
                if (arrMesh[i].res.isLoaded)
                {
                    desc.ApplyRes(arrMesh[i].res.obj);
                }
            }

            // SkinnedMesh
            for (int i = 0; i < resCollection.arrSkinnedMesh.Length; ++i)
            {
                var desc = resCollection.arrSkinnedMesh[i];
                if (arrSkinnedMesh[i].res.isLoaded)
                {
                    desc.ApplyRes(arrSkinnedMesh[i].res.obj);
                }
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// 销毁
 /// </summary>
 public void Dispose()
 {
     FreeRes();
     _data = null;
 }
Exemplo n.º 6
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="data"></param>
 public void Init(ResDescCollection data)
 {
     _data = data;
 }