コード例 #1
0
 protected void OnDestroy()
 {
     if (combinedMeshInfo != null && combinedMeshInfo.mesh && combinedMeshInfo.mesh != rawMeshInfo.mesh)
     {
         DestroyImmediate(combinedMeshInfo.mesh);
         combinedMeshInfo.materials = null;
         combinedMeshInfo.bones     = null;
         combinedMeshInfo           = null;
     }
 }
コード例 #2
0
    /// <summary>
    /// 开始蒙皮骨骼 by 吴江
    /// </summary>
    /// <param name="_smrList"></param>
    /// <param name="_refBones"></param>
    public void CombineSkinnedMesh(List <SkinnedMeshRenderer> _smrList, Dictionary <string, Transform> _refBones)
    {
        //如果已经Combine了 by吴江
        if (combinedMeshInfo.mesh != rawMeshInfo.mesh)
        {
            UnloadUnusedMaterials();

            skinnedMeshRenderer.sharedMesh      = rawMeshInfo.mesh;
            skinnedMeshRenderer.sharedMaterials = rawMeshInfo.materials;
            skinnedMeshRenderer.bones           = rawMeshInfo.bones;

            DestroyImmediate(combinedMeshInfo.mesh);
            combinedMeshInfo.mesh      = null;
            combinedMeshInfo.materials = null;
            combinedMeshInfo.bones     = null;
        }

        combinedMeshInfo = MeshHelper.CombineSkinnedMeshRenderer(_smrList, _refBones);

        combinedMeshDirty = true;
    }