@ㅇㅇ(14.50)
근데 private로 해도 subclass 에서는 호출될텐데?예,class A : MonoBehaviour { private void Awake() {} }class B : A { private void Awake() {} }B로 생성하면 그냥 B의 Awake만 호출됨gpt 내용Unity는 private 메서드도 Awake 이름이 맞으면 리플렉션을 통해 자동 호출합니다.하지만 Unity는 상속 관계에서 부모와 자식 클래스 각각의 Awake를 호출하지 않음.Unity는 정의된 클래스에 있는 메서드 하나만 호출합니다.
잘되는데?
저도 잘 되는데.. 실행시켰을때 로그도 잘뜨고 빨간줄 뜨는것도 없었는데 친구들은 안되는거 아니냐, 해봤는데 빨간줄 뜬다 그러길래 제 문젠가 싶어 질문글 써봤습니다
됩니다
다시 해보라고 하겠습니다. 뭐가문제지..
에러 메시지를 올리시지
앗 아 이거 얘들이 습관적으로 private void Awake선언해버려서 오버라이드고 버추얼이고 안먹혔던거 같네요 화면공유 보다가 뭔가 이상해서 봤더니.... protected로 접근자 바꾸니 해결됬습니다!
@ㅇㅇ(14.50) 근데 private로 해도 subclass 에서는 호출될텐데?예,class A : MonoBehaviour { private void Awake() {} }class B : A { private void Awake() {} }B로 생성하면 그냥 B의 Awake만 호출됨gpt 내용Unity는 private 메서드도 Awake 이름이 맞으면 리플렉션을 통해 자동 호출합니다.하지만 Unity는 상속 관계에서 부모와 자식 클래스 각각의 Awake를 호출하지 않음.Unity는 정의된 클래스에 있는 메서드 하나만 호출합니다.
네.. Awake는 오버라이드 안해도 각각? 클래스마다 도는거로 알고있긴 한데 저는 base부분 복붙이 귀찮아서 virtual로 관계 만들어뒀거든요 근데 같이하는 친구들이 코드보고 이게 되냐 안되냐로 갑론을박 하길래..