매니저 관련 질문이 있습니다.
2
작성한 질문수 3
void Start()
{
Init();
}
이것을 실행 시키려면 결국
매니저라는 스크립트가 하이라이키에 있는 오브젝트가 있어야 스타트가 동작하는데
후반에 가면 매니저 스크립트가 게임오브젝트에 없는대도 잘 실행됩니다.
플레이어컨트롤러에서 불러오게 되는건가
어떻게 게임오브젝트에 매니저가 없는데 Init():를 실행시키게 되는지 궁금합니다.
어디서 Init():를 호출했는지 보는 방법이 있을지요. 브레이크 걸고 에프11 누르면 다음으로 이동하는데 다음 말고 이전으로 가는 방법도 있는지 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 카쿠키님.
Start() 및 Init() 관련 궁금증에 대해 답변 드립니다. Unity에서 Start() 함수는 해당 스크립트가 포함된 게임 오브젝트가 활성화될 때 호출됩니다. 따라서 Managers 같은 싱글톤 패턴의 경우, 특정 오브젝트에 기생하지 않더라도, 다른 스크립트에서 해당 클래스를 호출할 때 자동으로 초기화가 이루어질 수 있습니다.
일반적으로 싱글톤 객체는
Instance와 같이 접근할 때 초기화가 이루어집니다. 즉,Instance프로퍼티를 호출할 때 내부적으로Init()을 실행해 객체를 생성하고 초기화합니다.질문에서 언급된 상황은
PlayerController나 다른 스크립트에서Managers.Instance를 호출하면서Init()이 트리거되는 경우입니다. 즉, 게임 오브젝트에 매니저가 없더라도 기능은 정상 작동할 수 있습니다.
이 상황을 디버깅하려면:
1. Managers.Instance를 호출하는 지점을 잘 관찰해야 합니다.
2. 디버깅 과정에서 이전으로 돌아가고 싶을 때는 ‘실행 스택(call stack)‘을 확인하거나 Back 기능을 제공하는 디버거 툴을 사용하여 이전 호출을 추적할 수 있습니다. 일반적으로 이 기능은 디버거 도구에 따라 제공되므로 사용 중인 IDE의 디버깅 기능을 확인하세요.
관련 내용을 다룬 질문으로 참고할만한 링크들을 아래 공유드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
비쥬얼 스튜디오에서 unity연결이 없습니다.
0
48
2
UI 기능 관련 질문이 있습니다!
0
48
2
픽셀 좌표 스크린 좌표
0
35
0
전체적으로 코드 읽는게 굉장히 오래 걸리네요...
0
85
2
카메라 #2 수업 캐릭터 쓰러짐 해결
0
87
1
플레이어 움직임이 끝날때, 기울어짐 현상
0
87
1
Input 적용과 관련하여 질문 있습니다.
0
76
1
디버그 불가.. Unity에 연결 불가
0
85
1
달리기 애니메이션 에러
0
94
2
오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다
0
67
1
GetKey 오류
0
114
2
에셋을 어디에 올려두신지 알 수 있나요?
0
111
1
재귀호출? 오류나는데 왜 이래요 ?
0
170
6
Animation blending 파라미터 계산
0
71
1
newPos와 to지점이 겹쳐져야 하는거 아닌가요?
0
100
3
오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다
0
89
2
질문있습니다
0
144
2
아 이거 소스코드 같은거 없나요?
0
144
3
질문 드립니다. string.IsNullOrEmpty(name)
0
89
2
@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?
0
137
2
유니티6 NavMesh 안되는분들
1
178
1
Unity6 Unity-Chan Material 마젠타 문제 해결법
7
537
1
GetComponent<Poolable> 질문드립니다.
0
104
2
UI 불러오지 못함
0
120
2





