728x90
프로젝트에 필요한 스프라이트가 포함되어 있어도 괜찮지만,
빌드된 프로그램이 재빌드 없이 내부 리소스가 교체되어야 할 때에는
지정된 폴더에서 리소스를 읽어 동적으로 로드해야한다.
이런 과정에서 동적으로 스프라이트를 생성하는 방법을 적어본다!
private Sprite MakeSprite(string filePath, Vector2 pivot)
{
if (string.IsNullOrEmpty(filePath) == true) return null;
// Get File Name
FileInfo fileInfo = new FileInfo(filePath);
// Read image
byte[] bytes = File.ReadAllBytes(filePath);
// Create Texture
Texture2D texture = new Texture2D(100, 100);
texture.LoadImage(bytes);
texture.name = fileInfo.Name.Split('.')[0];
// Create Sprite
Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), pivot);
sprite.name = texture.name;
return sprite;
}
FileInfo 는 Sprite 의 이름을 지정해주기 위해 가져온다. 이름이 필요없다면 생략해도 되는 과정이다.
이미지를 Byte 로 읽어 텍스쳐로 생성해주고, 생성된 텍스쳐를 Sprite.Create() 를 통해 만들어준다.
728x90
'유니티 & C#' 카테고리의 다른 글
유니티 Target API Level 코드로 수정하기 (API 31 이상 일 때) (0) | 2023.11.06 |
---|---|
유니티 - Isometric 2D 에 관하여.. (0) | 2023.11.01 |
유니티 UI 이미지가 보이지 않을 때 Maskable 옵션 확인하기 (2) | 2023.11.01 |
유니티 - 씬 이름을 Enum 으로 관리하기 [InitializeOnLoadMethod] 사용 (0) | 2023.10.26 |
유니티 - Define Symbol 코드로 제어하기 (0) | 2023.10.24 |