[Unity3D] Sprite 동적할당.
Unity3D/Tip 2017. 4. 21. 20:57
※ Sprite를 public으로 인스펙터창에 노출시킨뒤 드래그로 넣는것이 아닌,
폴더안에 존재하는 이미지의 경로를 받아 할당하는 방법이다.
개발하다보면 Sprite를 변수에 동적으로 넘겨줘야 할때가 있다.
게임 시작 시 'Resources'폴더 안에 있는 1이라는 이미지가 public으로 선언된 Sprite변수인 spr에
동적으로 들어가게 된다.
코드는 이렇다.
1 2 3 4 5 6 | public Sprite spr; void Start() { spr = Resources.Load<Sprite>("경로"); } | cs |
※ 주의사항
- 이미지는 Resources폴더에 있어야 한다.
이때 폴더 이름은 정확히 Resources여야 한다.
- 이미지의 Texture Type은 Sprite여야 한다.
한 가지더.
만약 이러한 이미지가 있다고 하자.
이 이미지의 모드는 Multiple로써
많은 자식들의 이미지를 가지고 있다.
이 모든 이미지를 동적으로 받고자 한다.
위의 소스를 조금만 수정하면 된다.
밑에와 같이 수정해주자.
1 2 3 4 5 6 | public Sprite[] spr; void Start() { spr = Resources.LoadAll<Sprite>("경로/이미지 "); } | cs |
※ 필자같은 경우 경로는 Img폴더에 이미지 이름이 Imgs이므로
spr = Resources.LoadAll<Sprite>("Img/Imgs"); 가 된다.
그리고 게임을 수행하면
위와같이 이미지들이 들어가게 된다.
저렇게 하나의 이미지 말고 폴더안에 존재하는 모든 이미지들을 할당 받고 싶다면
경로/이미지이름 에서 이미지이름을 지워주고 이미지가 존재하는 폴더까지만 경로를 써주면
그 폴더안에 존재하는 모든 이미지들을 모두 받아올수 있게 된다.
1 2 3 4 5 6 | public Sprite[] spr; void Start() { spr = Resources.LoadALL<Sprite>("경로"); } | cs |
※ Img폴더 안에 있는 모든 이미지를 받아오게 되었다.
'Unity3D > Tip' 카테고리의 다른 글
[Unity3D] AddExplosionForce(); - 폭발 시 여파 적용. (0) | 2017.04.27 |
---|---|
[Unity3D] 일정 범위내의 존재하는 Collider 객체를 추출. (0) | 2017.04.27 |
[Unity3D] 비균등스케일 (non-uniform scale) (0) | 2017.04.27 |
[Unity3D] 셰이더 및 물리 기반 셰이딩 (0) | 2017.04.25 |
[Unity3D] 배칭 & 드로우콜 (0) | 2017.03.16 |