유니티에서 서브 디렉토리를 만들 때 특정 이름으로 만들면 특별한 작동을 한다
Resources라는 이름의 폴더가 있다면, 그 폴더 안의 리소스를 불러오는 함수를 쓸 수 있다
Resources 폴더를 새로 만들어서 안에 이미지 파일을 넣었다
테스트를 위한 버튼 하나를 만들어서 스크립트를 붙였다
public class Box1Manager : MonoBehaviour
{
object[] sprites;
// Start is called before the first frame update
void Start()
{
sprites = Resources.LoadAll("1_LikeLove");
for (int i = 0; i < sprites.Length; i++)
{
GameObject go = sprites[i] as GameObject;
}
}
public void OnClickBox1() //1번 박스가 클릭되면
{
print("클릭");
foreach (var t in sprites)
{
Debug.Log(t);
}
}
}
실행해보면 출력은 잘 되는데 2개씩 나온다
실제 폴더를 보면 이미지 파일+meta 파일 이렇게 있는데, 메타 파일도 같이 출력되는 것 같다
이미지 파일만 있으니까 아예 sprite 형식 파일만 불러오게 해봤다
public class Box1Manager : MonoBehaviour
{
Sprite[] sprites;
// Start is called before the first frame update
void Start()
{
sprites = Resources.LoadAll<Sprite>("1_LikeLove");
}
public void OnClickBox1() //1번 박스의 답체크
{
print("클릭");
foreach (var t in sprites)
{
Debug.Log(t);
}
}
}
참고로 전체 파일이 아니라 각각 가져오고 싶다면
GameObject temp5 = Resources.Load( "Resources아래의 파일 경로" ) as GameObject; 라고 하면 된다
그래도 안 돌아가면 아래 항목들을 체크해보면 됨
1. using UnityEngine.UI;로 UI불러왔나?
2. 리소스들이 Resources 파일 하위에 위치한 것이 맞나?
3. 파일명 잘 썼나?
4. 파일 형식은 올바른가?
5. 이 코드의 문제가 맞나? 버튼 쪽이나 다른 오브젝트의 문제는 아닌지?
유니티 Resources.LoadAll으로 리소스 파일 전체 불러오기(sprite 불러오기) (tistory.com)
'게임엔진 > Unity' 카테고리의 다른 글
[Unity] CSV 파일 저장, 불러오기 Read, Write 간단 사용법 (0) | 2023.09.18 |
---|---|
[Unity] Visual Studio에서 디버깅 연결이 되지 않는 경우 (0) | 2023.09.18 |
[Unity] UniTask VS Task (UniTask 개념 포함) (0) | 2023.09.13 |
[Unity] Coroutine 과 UniTask 비교 예제 (0) | 2023.09.13 |
[Unity] Mathf (0) | 2023.09.11 |