코딩 공부/Unity C#
오브젝트의 충돌 및 질량
recordmastd
2024. 7. 21. 01:10
바닥에 붙어있는 여러 마리의 물고기를 클릭하면 물고기가 위로 올라간다
물고기와 위에서 떨어지고 있는 곰돌이가 충돌하면 충돌 이펙트와 함께 두 오브젝트는 파괴된다
물고기는 계속 생성된다
중력이 있는 상태에서 특정 오브젝트의 중력만 없애는 방법
- Gravity Scale을 0으로 설정하면 해당 오브젝트의 중력이 사라진다
Fish 스크립트
- 물고기가 곰돌이와 충돌했을 때에만 폭발할 수 있도록 태그 설정을 한다(TeddyBear)
- 물고기가 위로 올라가서 화면 밖으로 나가면(OnBecameInvisible메서드) 물고기를 파괴한다
- 물고기 오브젝트를 움직이는 y축의 힘이 5000이나 된다
- 전에 다루던 오브젝트보다 물고기의 질량이 더 커졌으므로 힘의 크기도 더 커져야한다
TeddyBear 스크립트
- 곰돌이가 다른 오브젝트와 충돌했을 때 해당 오브젝트의 변수를 저장한다(collisionObject)
- 충돌한 오브젝트가 물고기라면(Fish태그로 인식) 물고기 오브젝트의 스크립트 컴포넌트를 저장한다
- 물고기 오브젝트의 스크립트 레퍼런스가 있으므로 Damage 프로퍼티에 접근할 수 있다
- 물고기가 곰돌이에게 데미지를 입히고, 곰돌이의 체력(healty)가 0이 되면 곰돌이는 파괴된다