작성
·
323
0
안녕하세요 유니티 궁금한 점이 있습니다.
정해진 타입의 선택된 컴포넌트에서만 실행되게 하는 로직인데 NullRefException이 발생하는데 이유가 궁금합니다.
void ProgressBarExe()
{
// Debug.Log($"Select idx :{selected}");
// 재생중인 소스, 현재 활성중인 버튼에서만 동작, NullreferenceException 에러 발생하는 부분입니다.
if (EventSystem.current.currentSelectedGameObject.transform.tag == "cellprefab" && EventSystem.current.currentSelectedGameObject.transform.GetSiblingIndex() == selected)
{
EventSystem.current.currentSelectedGameObject.transform.GetChild(1).GetComponent<Slider>().maxValue = Source.clip.length;
EventSystem.current.currentSelectedGameObject.transform.GetChild(1).GetComponent<Slider>().value = Source.time;
}
}
현재 선택된 곳이 버튼 프리팹이고 selected 인덱스의 AudioSource Source 가 재생중인 경우에는 다른 버튼들이 비활성화 되거나 하는 로직 구현이 궁금합니다. (현재 선택된 곳의 인덱스를 저렇게 가져오는 것 같은데 다른 빈 곳을 누르면 NullRefException 발생하는데 그 이유를 잘 모르겠네요.)
아 해결했습니다. 버튼 프리팹을 오브젝트 리스트에 넣어서 인덱스 넣었더니 되네요..