/// <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); }
/// <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); }
/// <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]; }
/// <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); } } }
/// <summary> /// 销毁 /// </summary> public void Dispose() { FreeRes(); _data = null; }
/// <summary> /// 初始化 /// </summary> /// <param name="data"></param> public void Init(ResDescCollection data) { _data = data; }