/// <summary>
        /// 注册缓存材质球(有图片)
        /// </summary>
        public static MaterialCache Register(ulong hash, Texture texture, Func <Material> onCreateMaterial)
        {
            var cache = materialCaches.FirstOrDefault(x => x.Hash == hash);

            if (cache != null)
            {
                if (cache.MainMaterial)
                {
                    cache.ReferenceCount++;
                }
                else
                {
                    materialCaches.Remove(cache);
                    cache = null;
                }
            }
            else
            {
                cache = new MaterialCache()
                {
                    Hash           = hash,
                    MainMaterial   = onCreateMaterial(),
                    MainTexture    = texture,
                    ReferenceCount = 1,
                };
                materialCaches.Add(cache);
            }

            return(cache);
        }
        /// <summary>
        /// 注销材质球
        /// </summary>
        public static void Unregister(MaterialCache cache)
        {
            if (cache == null)
            {
                return;
            }

            cache.ReferenceCount--;
            if (cache.ReferenceCount <= 0)
            {
                materialCaches.Remove(cache);
                cache.MainMaterial = null;
                cache.MainTexture  = null;
            }
        }
        /// <summary>
        /// 注册缓存材质球(没有图片)
        /// </summary>
        public static MaterialCache Register(ulong hash, Func <Material> onCreateMaterial)
        {
            var cache = materialCaches.FirstOrDefault(x => x.Hash == hash);

            if (cache != null)
            {
                cache.ReferenceCount++;
            }

            if (cache == null)
            {
                cache = new MaterialCache()
                {
                    Hash           = hash,
                    MainMaterial   = onCreateMaterial(),
                    ReferenceCount = 1
                };
                materialCaches.Add(cache);
            }

            return(cache);
        }