: how to change Texture Max Size with scripting 및 Editor class "Texture Importer" + Apply import settings question, 난 그게 내 경우 텍스처 당신이 자산으로 질감을 저장할 필요가 최대 크기 ...텍스처 최대이 기사에 따라 크기
을 변경 실현, 나는 통해 보내 BIN 파일이 네트워크를 (Application.persistentDataPath + "/ Binaries /") 경로로 가져온 다음 BINs의 데이터를 텍스처로 검색하고 PNG 파일로 저장합니다 (Application.dataPath + "/ textures/Weather /"). . 이제 파일이 생겨 최대 크기의 텍스처를 변경할 수 있습니다.
List<Texture2D> SetupTextures(List<string> textureNames)
{
string fileName;
List<Texture2D> textures = new List<Texture2D>();
string[] subStrings = Regex.Split(texturesData, "Assets");
string assetDatabasePath = "Assets" + subStrings [1];
//print ("AAA: " + assetDatabasePath + textureNames[0]);
foreach(string name in textureNames)
{
fileName = assetDatabasePath + name;
#if UNITY_EDITOR
TextureImporter tImporter = AssetImporter.GetAtPath(fileName) as TextureImporter;
if(tImporter != null) {
tImporter.mipmapEnabled = true;
tImporter.isReadable = true;
tImporter.maxTextureSize = 256;
tImporter.textureFormat = TextureImporterFormat.AutomaticTruecolor;
AssetDatabase.ImportAsset(fileName, ImportAssetOptions.ForceUpdate);
//print ("TextureImporter successfully settled.");
} else {
//print ("Faild to set TextureImporter!");
}
Texture2D texture =
(Texture2D) AssetDatabase.LoadAssetAtPath (fileName, typeof(Texture2D));
if(texture != null) {
//renderer.material.mainTexture = texture;
//renderer.material.SetTexture("_Texture2", texture);
textures.Add(texture);
//print ("Texture successfully added to list.");
} else {
//print ("Faild to add texture to list!");
}
#endif
}
return textures;
}
문제는 AssetImporter.GetAtPath()가 경로에서 새로 생성 된 PNG 파일을 확인하지 못합니다. 하지만 다른 창으로 다시 초점을 맞추고 통합에 초점을두면로드가 시작되고 AssetImporter.GetAtPath()가 필요한 파일을 가져옵니다.
1) 포커스를 변경하지 않고 어떤 방식으로도 처리 할 수 있습니까?
2) 또는 디스크에 저장하지 않고 텍스처 최대 크기를 변경할 수 있습니까?
BIN 파일을 코드로 PNG로 변환합니까? –
예. 하지만 유니티 창에 다시 초점을 맞추지 않거나 프로그램을 두 번째로 실행하지 않으면 Unity는 새로 생성 된 PNG 파일을 보지 못합니다. – Farik
그래서 도움이 되었습니까? –