public override int GetHashCode()
        {
            int result = 0;

            if (SplatTexutre != null)
            {
                for (int i = 0; i < SplatTexutre.Length; i++)
                {
                    result ^= SplatTexutre[i].GetHashCode() + 1;
                }
            }
            if (MaterialTexture != null)
            {
                for (int i = 0; i < MaterialTexture.Length; i++)
                {
                    if (MaterialTexture[i] != null)
                    {
                        result ^= MaterialTexture[i].GetHashCode() + 1;
                    }
                }
            }

            return(GetType().GetHashCode() ^
                   (XMesh != null ? XMesh.GetHashCode() : 1) ^
                   (Mesh != null ? Mesh.GetHashCode() : 1) ^
                   (Texture != null ? Texture.GetHashCode() : 1) ^
                   (SkinnedMesh != null ? SkinnedMesh.GetHashCode() : 1) ^
                   (BaseTexture != null ? BaseTexture.GetHashCode() : 1) ^
                   (SpecularTexture != null ? SpecularTexture.GetHashCode() : 1) ^
                   result);
        }
 public override int GetHashCode()
 {
     return(GetType().GetHashCode() ^
            (Layout != null ? Layout.GetHashCode() : 1) ^
            (MeshDescription != null ? MeshDescription.GetHashCode() : 1) ^
            (MetaMesh != null ? MetaMesh.GetHashCode() : 1) ^
            (Mesh != null ? Mesh.GetHashCode() : 1) ^
            (XMesh != null ? XMesh.GetHashCode() : 1) ^
            (MetaXMesh != null ? MetaXMesh.GetHashCode() : 1) ^
            XMeshFlags.GetHashCode() ^
            Pool.GetHashCode());
 }