개발하다보면 Spirte 를 SpriteRenderer 한테 동적으로 넘겨줘야할 때가 있습니다.
그럴때는 가볍게 해결할 수 있는데요.
1 2 3 4 | SpriteRenderer renderer; int playerNo = 1; renderer.sprite = Resources.Load<Sprite>("Sprites/Common/Player/player " + playerNo); | cs |
위와 같이 하면 됩니다.
그런데 as 로 캐스팅하게 되면 안되더군요.
밑의 코드와 같이 하면 이상하게 안됩니다.
1 2 3 4 | SpriteRenderer renderer; int playerNo = 1; renderer.sprite = Resources.Load("Sprites/Common/Player/player " + playerNo) as Sprite; | cs |
저는 이렇게 해서 한참을 헤맸는데요. 저처럼 헤매지 마세요.
※ 주의 사항 - 동적으로 연결이 안될 경우
1. Resources.Load 를 사용할 경우 'Resources' 폴더 밑에 해당 파일이 있어야 합니다.
이와 같이 'Resources' 폴더명이 정확해야합니다.
2. Resource.Load(경로) => 경로가 'Resources' 폴더부터 상대 경로입니다. 해당 경로도 정확해야합니다. 단, 확장자는 필요 없습니다.
3. Sprite 의 경우 이미지 타입을 inspector 에서 Sprite 로 변경을 안 하면 null 을 리턴합니다.
댓글 없음:
댓글 쓰기