-
카테고리
-
해결 여부
미해결
유니티 현재 선택된 gameobject 관련 로직 관련 질문드립니다.
21.06.16 17:01 작성 조회수 217
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 발생하는데 그 이유를 잘 모르겠네요.)
답변을 작성해보세요.
1
차동훈
2021.06.17
해당 소스만 봐서는 판단하기가 쉽지 않은 것 같습니다.
개인적으로 Unity가 실행 중일 때 Debugging 할 수 있는 방법이 있는데 이를 통해 한번 로그를 찍어보시는 것을 추천드립니다.
https://docs.unity3d.com/kr/2020.3/Manual/ManagedCodeDebugging.html
위 링크에 들어가보셔서 내용 보시고 따라하시면 금방 할 수 있을 겁니다!
답변 1