[Unity] Addressoble Asseets System 개인 수첩
12972 단어 Unity2018AddressableAssetsUnity
어디서 누구를 도울 수 있었으면 좋겠어요.
가져오기 방법에 대한 자세한 내용은 를 참조하십시오.
변수명과 방법명은 모두 적당하기 때문에 들고 있을 때 다시 명명해야 한다.
개체 버전 마감 2018/09/13
Unity 2018.3.0b1
AddressableAssetsSystem 0.3.5-Preview
예, 그렇습니다.
코드에서 그룹에 자산 추가
역시 수동으로 넣는 게 귀찮아요.
... 때문에
메뉴를 적당히 누르면 자동으로 등록됩니다.
static string _addressableAssetsPath = "Assets/AddressableAssets/";
[MenuItem("AddressableAssets/ConvertAddressableAssetsData")]
public static void ConvertAddressableAssetsData()
{
var aaSettings = AddressableAssetSettings.GetDefault(false, false);
var files = System.IO.Directory.EnumerateFiles(_addressableAssetsPath, "*", System.IO.SearchOption.AllDirectories);
foreach(var file in files)
{
var ex = Path.GetExtension(file);
var path = file.Replace('\\','/');
if (ex == ".meta") continue;
var basePath = path.Replace(_addressableAssetsPath, "");
var baseDirectory = basePath.Split('/')[0];
var group = aaSettings.groups.Find(g => g.Name == baseDirectory);
if (group == null)
{
group = aaSettings.CreateGroup(baseDirectory, typeof(BundledAssetGroupProcessor), false, false);
// 追加した場合は取り直しておく
aaSettings = AddressableAssetSettings.GetDefault(false, false);
}
// グループに対してAssetを登録
var en = aaSettings.CreateOrMoveEntry(AssetDatabase.AssetPathToGUID(file), group);
// Addressを登録
en.address = basePath.Replace(ex, "");
}
}
천천히 설명해 주세요.지정한 폴더 아래에 있는 파일 캡처
_경로 바로 아래의 디렉토리를 그룹 이름으로 읽어들이기
그렇지 않으면 조합 생성
그룹에 자산 등록
주소 열기다음 경로에서 파일로 먼저 업데이트
일단 이렇게 하다
단번에 등록했다
조금 가볍게.
0.3.5 나중에는...
0.3.5 때 B undled Asset Group Processor가 인터넷으로 바뀌었어요.
CreateGroup에 가입할 때 다음과 같이 할 수 있습니다
var asm = Assembly.Load("Unity.Addressables.Editor");
var type = asm.GetType("UnityEditor.AddressableAssets.BundledAssetGroupProcessor");
略
foreach(var file in files)
{
var ex = Path.GetExtension(file);
var path = file.Replace('\\','/');
if (ex == ".meta") continue;
var basePath = path.Replace(_addressableAssetsPath, "");
var baseDirectory = basePath.Split('/')[0];
var group = aaSettings.groups.Find(g => g.Name == baseDirectory);
if (group == null)
{
group = aaSettings.CreateGroup(baseDirectory, type, false, false);
// 追加した場合は取り直しておく
aaSettings = AddressableAssetSettings.GetDefault(false, false);
}
대량 제작 시 BundleMode 지정
왜 현재 구축 후 또는 추가 자산 후 도입이 끝나면 BundleMode가 PackTogether가 되는지 모르겠다.
... 때문에
작성 시 지정
다른 좋은 방법이 있을지도 몰라요.
//デフォ設定持ってくる
var aaSettings = AddressableAssetSettings.GetDefault(false, false);
aaSettings.groups.ForEach(g =>
{
//SetDataで書き込む
g.Data.SetData("BundleMode", BundledAssetGroupProcessor.BundleMode.PackSeparately);
});
// とりあえずビルドするだけ
var bs = BuildScript.PrepareRuntimeData(
true,
arg.isDevelopmentBuild,
false,
true,
false,
setting.BuildTargetGroup,
setting.BuildTarget
);
설마 설정 방법이 Data인가?SetData는아마 이걸 바꾼 마지막 그룹의 온셋데이터?이후 생성 안 함
가끔 제대로 업데이트되지 않은 경우도 있다.
0.3.5 나중에는...
0.3.5부터 그룹 설정을 ScriptalbleObject에 저장하기 때문에
구축할 때의 데이터입니다.SetData 필요 없음
B undled Asset GroupProcessor가 인터넷으로 바뀌었기 때문에 이 방법은 본래 잘못된 것이므로 주의해야 한다
전용 관리창만 만들 때 주의해야 하나요?
Reference
이 문제에 관하여([Unity] Addressoble Asseets System 개인 수첩), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/wm2w/items/af3f8bb1e5c466ade430텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)