Unity 확장자를 사용한 편집기 확장

6815 단어 Live2DUnity
Unity에서 Live 2D 파일(.moc,.mtn)을 가져올 때 Unity를 가져오기 전에bytes 확장자텍스트 자산를 붙여야 합니다.
매번 귀찮아서 유닛에 파일을 끌어다 놓고 bytes 확장자를 붙인다.

Editor 폴더를 만들고 다음 스크립트를 입력하면 됩니다!
파일 액세스 시스템이 매우 무거운 것 같아서 복사한 후에 삭제합니다.

소스 코드


AssetRenameBytes.cs
using UnityEngine;
using UnityEditor;
using System.IO;
using System.Collections;

public class AssetRenameBytes : AssetPostprocessor {
    /// <summary>
    /// あらゆる種類の任意の数のアセットがインポートが完了したときに呼ばれる処理
    /// </summary>
    /// <param name="importedAssets"> インポートされたアセットのファイルパス。 </param>
    /// <param name="deletedAssets"> 削除されたアセットのファイルパス。 </param>
    /// <param name="movedAssets"> 移動されたアセットのファイルパス。 </param>
    /// <param name="movedFromPath"> 移動されたアセットの移動前のファイルパス。 </param>
    static void OnPostprocessAllAssets
        (string[] importedAssets, string[] deletedAssets,
         string[] movedAssets, string[] movedFromPath)
    {
        // アセットがインポートされた場合
        foreach(string asset in importedAssets){
            // 拡張子のみ取得
            string type  = Path.GetExtension(asset);

            // mtn、mocファイルをインポートした時
            if(type == ".mtn" || type == ".moc"){
                // 拡張子にbytesを付けて複製
                FileUtil.CopyFileOrDirectory(asset, asset + ".bytes");
            }

            // bytesファイル作成時に走る処理
            if(type == ".bytes"){
                // 拡張子なしのファイル名を取得
                string filenm = Path.GetFileNameWithoutExtension(asset);
                // コピー元ファイルとmetaデータを削除
                FileUtil.DeleteFileOrDirectory(asset.Replace(".bytes", ""));
                FileUtil.DeleteFileOrDirectory(asset.Replace(".bytes", ".meta"));
                Debug.Log(filenm + "をbytes拡張子に変換");
                // Editorに反映されるの遅いのでリフレッシュ
                AssetDatabase.Refresh();
            }
        }
    }
}
moc와 mtn 파일을 드래그하면 변환할 수 있습니다.
원본 파일을 삭제하기 어려울 때도 있지만 1분 정도 두면 삭제된다.

처음에는 AssetDatabase로 하려고 했지만 URL과 같은 확장자를 참고하지 않아 FileUtil로 해결했다.
[참조 URL]
자산 로드 시 독립적으로 처리
[Unity] AssetDatabase에서 자산 조작!
2015/02/24 추기
사실 라이브 2D Unity SDK는 반년 전쯤부터 동일하게 처리됐다.
그러나 모든 motions 폴더를 드래그하면 변환되지 않는 파일이 생길 수 있다는 것은 수수께끼다.
이 페이지에 쓴 원본 파일이라면 폴더마다 문제가 없습니다.
SampleApp1\Assets\Editor\Live2DImporter.cs
2015/10/16
겸사겸사 서류 이름을 말씀드리겠습니다.mtn.bytes가 되면 Live 2D Viewer에서 참조할 수 없게 됩니다.
이 경우 확장자를 명령 알림으로 통일적으로 바꿀 수 있다.
대상 폴더 "ren*.mtn.bytes*."로 이동이렇게 하면 bytes 확장자를 얻을 수 있습니다.
mac의 경우 Shupapan.app 무료 소프트웨어 통합 교체 추천

좋은 웹페이지 즐겨찾기