Beispiel #1
0
 /// <summary>
 /// 所有権(Dispose権)を移譲する
 /// </summary>
 /// <param name="take"></param>
 public void TransferOwnership(TakeResponsibilityForDestroyObjectFunc take)
 {
     foreach (var(k, v) in _textureCache.ToArray())
     {
         take(k, v);
         _textureCache.Remove(k);
     }
 }
Beispiel #2
0
 public void TransferOwnership(TakeResponsibilityForDestroyObjectFunc take)
 {
     foreach (var(key, o) in _runtimeClips.ToArray())
     {
         take(key, o);
         _runtimeClips.Remove(key);
     }
 }
Beispiel #3
0
 /// <summary>
 /// 所有権(Dispose権)を移譲する
 ///
 /// 所有権を移動する関数。
 ///
 /// * 所有権が移動する。return true => ImporterContext.Dispose の対象から外れる
 /// * 所有権が移動しない。return false => Importer.Context.Dispose でDestroyされる
 ///
 /// </summary>
 /// <param name="take"></param>
 public void TransferOwnership(TakeResponsibilityForDestroyObjectFunc take)
 {
     foreach (var x in m_materials.ToArray())
     {
         if (!x.UseExternal)
         {
             // 外部の '.asset' からロードしていない
             take(x.Key, x.Asset);
             m_materials.Remove(x);
         }
     }
 }
Beispiel #4
0
        /// <summary>
        /// Root ヒエラルキーで使っているリソース
        /// </summary>
        /// <returns></returns>
        public virtual void TransferOwnership(TakeResponsibilityForDestroyObjectFunc take)
        {
            foreach (var mesh in Meshes.ToArray())
            {
                take(SubAssetKey.Create(mesh.Mesh), mesh.Mesh);
                Meshes.Remove(mesh);
            }

            AnimationClipFactory.TransferOwnership(take);
            TextureFactory.TransferOwnership(take);
            MaterialFactory.TransferOwnership(take);
        }
        public override void TransferOwnership(TakeResponsibilityForDestroyObjectFunc take)
        {
            // VRM-0 は SubAssetKey を使っていないので default で済ます

            // VRM 固有のリソース(ScriptableObject)
            take(default, HumanoidAvatar);