새로운 게임 작업을 시작했고 필자가 제공 한 문자 나 숫자에 따라 스프라이트 시트에서 문자를 변경하려고합니다. 필자는 Photoshop에서 숫자 만의 스프라이트 시트를 만들었고이를 테스트하여 Sprite로 Unity에 가져 왔습니다. 그런 다음 스크립트에서 나는 이런 짓을 :C# Unity - 스프라이트 시트에서 스프라이트 바꾸기
public string currLetter;
public string lettersName;
Sprite[] lettersAll;
void Awake() {
lettersAll = Resources.LoadAll<Sprite> ("Textures/" + lettersName);
}
void Update() {
switch (currLetter) {
case "0":
gameObject.GetComponent<SpriteRenderer>().sprite = lettersAll[0];
break;
case "0":
gameObject.GetComponent<SpriteRenderer>().sprite = lettersAll[1];
break;
}
}
나는 그것이 예를 들어 번호 1의 경우 스위치 문에서 오류가 점점 오전 , 그것은 배열 색인이 범위에서 벗어난 것을 말한다 그리고 나는 lettersAll를 설정할 때 그것을 0 sprite했다 공개했다. 내가 도대체 뭘 잘못하고있는 겁니까 ? 내가 해결하기 위해 노력 해왔다이 하루 종일 아무것도하지만 작동 :/
업데이트 : 스프라이트 시트의
이미지 :
'Resources.LoadAll'가 실패한 것 같습니다. 'Resources.LoadAll' 함수 아래에서'Debug.Log (lettersAll.Length);를 실행하여 이것을 증명할 수 있습니다. 저 기록의 비밀을 알려주십시오. 또한 텍스쳐를 넣은 디렉토리는 무엇입니까? 또한 텍스처를 선택하고 가져 오기 설정에 대한 그림을 그립니다. – Programmer
텍스처 폴더는 Projects/Project Name/Assets /에 있으며 가져 오기 설정은 스프라이트로 변경하고 스프라이트 모드를 다중으로 설정하여 문자를자를 수 있으므로 다른 모든 것은 디 펙트에 있습니다 –