반응형
Notice
Recent Posts
Recent Comments
Link
안 쓰던 블로그
유니티 Resources.LoadAll으로 리소스 파일 전체 불러오기(sprite 불러오기) 본문
반응형
유니티에서 서브 디렉토리를 만들 때 특정 이름으로 만들면 특별한 작동을 한다
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);
}
}
}
sprite파일만 출력한다
참고로 전체 파일이 아니라 각각 가져오고 싶다면
GameObject temp5 = Resources.Load( "Resources아래의 파일 경로" ) as GameObject; 라고 하면 된다
그래도 안 돌아가면 아래 항목들을 체크해보면 됨
1. using UnityEngine.UI;로 UI불러왔나?
2. 리소스들이 Resources 파일 하위에 위치한 것이 맞나?
3. 파일명 잘 썼나?
4. 파일 형식은 올바른가?
5. 이 코드의 문제가 맞나? 버튼 쪽이나 다른 오브젝트의 문제는 아닌지?
반응형
'유니티 > 개발' 카테고리의 다른 글
unity 슈팅게임 총알 5개 한 번에 쏘는 방법(GetComponentsInChildren) (0) | 2020.02.04 |
---|---|
unity 변수/함수/오브젝트 다른 씬에서 접근, 공유하기(DontDestroyOnLoad) (0) | 2020.02.02 |
유니티 GameObject와 Prefab 차이 (0) | 2020.02.02 |
유니티 코드에서 return이 if문 안에만 있으면 안 되네 (0) | 2020.02.02 |
유니티 오브젝트 이동(transform.position) 이상한 곳으로 갈 때 해결 방법 (2) | 2020.01.30 |
Comments