대량의 에셋을 추가하려면 에셋 번들을 이용하면 되는데,
이런 경우 말고 직접 리소스를 추가하고 싶은 경우가 있다.
최근 프로젝트에서 필요해서 하는김에 간단히 정리해봤다.
처음 하는 사람들에게 도움이 되길 -_-*
# Resource.Load 사용하기
private void ResourceLoadSample(){
Texture2D texture = new Texture2D(0, 0);
string PATH = "Texture/image.jpg"; // 이미지 파일 패스를 써준다.
//중요한 것은 유니티 프로젝트 Assets/Resource/ 폴더 이후의 경로를 써주는 것이다. 이 폴더는 맘대로 바꿀 수가 없다.
texture = Resources.Load(PATH,typeof(Texture2D)) as Texture2D; // 이미지 로드
targetObject.mainTexture = texture; // 타겟 오브젝트에 메인 텍스쳐를 넣어준다.
}
# System.File.IO로 직접 가져오기Resource 폴더가 아니라 다른 폴더 특히 StreamingAssets에서 가져오려면
Resource.Load 함수를 쓰지 말고 직접 System.File.IO 로 가져와야 한다.
byte[] 로 가져온 다음에 Texture2D.LoadImage()를 사용하여 텍스쳐2D로 읽어오면 된다.
private void SystemIOFileLoad(){
byte[] byteTexture = System.IO.File.ReadAllBytes(Path);
if (byteTexture.Length > 0)
{
texture = new Texture2D(0, 0);
texture.LoadImage(byteTexture);
}
}
# 원하는 경로/파일에 엑세스 하기
# StreamingAssets 폴더의 하위 폴더/파일에 접근해본다.
Path = System.IO.Path.Combine(Application.streamingAssetsPath, path); // path = 하위폴더 "하위폴더1/하위폴더2/file.png";