합치기 강의중 합쳐질 때 원래 있던 행성이 없어지는 로직 중 질문 드립니다
합치기 강의에서 합쳐질때 원래 있던 행성이 사라지는코드 이해는 되는데요
Destroy(this.gameObject); 이 코드만 실행이 되는데 어떻게 충돌하는 물체도 같이 사라지는지 모르겠습니다
Destroy(collision.gameObject); 도 같이 들어가야하는거 아닌가요?
Câu trả lời 2
0
사실 코드 구조가 생각이 안나서 이게 맞는지는 모르겠습니다만
그게 행성에 들어있는 스크립트면 서로 부딪혔을때 각자 OnCollision이 실행돼서
Destroy(this.gameobject) 또한 각자 실행되고, 서로가 자기 자신을 삭제하니
둘다 사라지는 그런 코드가 아니였나 싶네요
0
안녕하세요, 인프런 AI 인턴입니다.
준영님께서 Unity의 게임 개발 강의에서 “오브젝트 합치기” 기능 구현 중 발생하는 코드 동작에 대해 질문을 주셨습니다. Destroy(this.gameObject); 코드의 동작이 어떻게 충돌하는 다른 물체도 제거되는지 궁금해하시는군요.
코드 동작 설명
Destroy(this.gameObject); 코드는 현재 스크립트가 붙어 있는 게임 객체를 제거하는 기능을 합니다. 만약 이 코드가 포함된 스크립트가 충돌 시점을 처리하도록 설계되어 있다면, 충돌 이벤트를 트리거하고 다른 게임 오브젝트에도 영향을 미칠 수 있습니다.
하지만 질문에서 제기하신 것처럼 충돌 대상이 되는 물체를 명시적으로 제거하고 싶다면, 일반적으로 Destroy(collision.gameObject); 방법을 사용할 수 있습니다. collision은 충돌 이벤트에서 전달받은 Collision 객체를 통해 접근할 수 있습니다.
- 충돌 처리:
private void OnCollisionEnter(Collision collision) { Destroy(this.gameObject); // 현재 오브젝트 제거 Destroy(collision.gameObject); // 충돌한 오브젝트 제거 }
이와 같은 형태로 작성하면 충돌한 두 오브젝트 모두를 제거할 수 있습니다. 기존 코드에서는 특정 조건이나 논리 흐름에 따라 두 번째 물체가 제거되는지 추가 문맥이나 코드가 있을 수 있으니 코드를 다시 한번 살펴보시길 바랍니다.
추가적인 참조 링크
유사한 문제를 다루고 있는 다른 게시물을 참조하시면 더 도움이 될 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
subagents에 관한 질문이 있습니다.
0
1
1
Sequence 관련 질문
1
8
2
유니코티님!
0
88
2
유니티 비법서 받을수 있을까요
0
78
2
유니티 6.3 버전
1
138
1
7번 강의 8분10초쯤에 사용하신 기호
0
79
1
Sceene에서 시점을 변경하려고 하는데 잘 안됩니다.
1
88
2
질문있습니다
0
89
4
카메라 보더
1
70
2
30강, circlecollider의 radius 크기 설정 원리가 궁금합니다
1
93
3
Input Setting 관련해서 질문있습니다!
0
74
2
코딩 계란레벨이라 자질구리한 질문? 입니다.
0
154
2
질문이 하나 있습니다.
1
75
2
컴텨 문외한 입니다. ㅜㅜ
1
100
3
유니티 비법서
1
124
1
visual studio Code에서 코딩할때 자동완성기능이 수업과 다릅니다.
1
767
3
유니티 6
1
139
2
코드가 이해가 안됩니다..
1
110
2
수박게임 Stars_Small_1파일문제
1
93
2
Canvas 사이즈 관련 질문입니다.
1
83
2
Player Input Setting 관련 질문입니다.
1
474
2
수박게임 질문
1
91
2
타이핑 할 때 왜 자꾸 화면에 숫자x 이거 왜생기는거에요? 엄청 거슬리네요.
1
117
2
초반 세팅시 버전 및 템플릿 질문
1
177
1

