ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 유니티 오브젝트 파괴 / Destroy
    유니티(Unity)/유니티 코딩 2019. 2. 24. 13:30

    해당 티스토리 페이지는 필자가 유니티 C# 개발을 하면서 학습한 내용들을 기록하고 공유하는 페이지입니다 !

    - 틀린 부분이 있거나, 수정된 부분이 있다면 댓글로 알려주세요 !

    - 해당 내용을 공유 or 퍼가도 좋으나, 출처를 꼭 명시해주세요 !

    - 해당 글의 모든 저작권은 Chameleon Studio에 있습니다.

    - 방문해주셔서 감사합니다 ^^



     

    썸네일 이미지입니다.유니티 오브젝트 파괴


    안녕하세요 여러분 카멜레온입니다 ㅎㅎ


    오늘은 유니티의 게임오브젝트를


    파괴하는 것을 Destroy 자산을 사용하여


    구현해보도록 하겠습니다.


    지난 시간에


    Instantiate를 사용해서 게임 오브젝트를


    복사해서 생성하였지요.


    이렇게 많은 복사물들을 파괴할 때도 유용합니다.


    오늘은 두 가지 파괴를 해보겠습니다.


    첫 번째로 위치 값에 따라 오브젝트 파괴시키기


    두 번째는 콜라이더에 닿으면 오브젝트 파괴시키기


    첫 번째부터 한 번 알아볼까요?



    프로젝트를 연 이미지입니다.프로젝트 열기



    우선 프로젝트를 열어봅시다.


    해당 프로젝트는 이전에 했던


    Instantiate 포스팅 때 사용했던 프로젝트입니다.


    오브젝트와 스크립트가 일치하기때문에


    이번 포스팅을 따라하시는 분은


    이전 포스팅을 확인해주세요. >> 여기


    이전 포스팅에서 만들어두었던


    InstantiateScript 스크립트를 열어줍니다.



    아래 코드를 캡처한 사진입니다.이미지가 안보이시는 분들은 아래 코드 보기를 누르고 코드를 확인해주세요.




    스크립트가 열렸습니다.


    이전에 업데이트문에 적어두었던 코드 아래에


    if문을 추가해줍시다.


    if(gameObject.transform.position.y >= 6)


    만약, 게임 오브젝트(젤랑 총알)가


    y값이 6보다 커진다면


    Destroy(gameObject);


    게임 오브젝트(젤랑 총알)를


    파괴하라.


    라는 코드입니다.


    유니티로 돌아가서


    파괴가 잘 되는지 확인해봅시다.





    게임 오브젝트(젤랑 총알)의 y값이 6보다 커지니


    바로 바로 파괴가 되고 있는 모습을 확인했습니다.


    참 간단하지요?


    바로 두 번째 방법으로 넘어가봅시다.


    두 번째 방법은 콜라이더를 사용해서 파괴하는 것입니다.


    우선 오브젝트를 만들어봅시다.



    데드라인에 콜라이더 만들기 이미지입니다.데드라인에 콜라이더 만들기



    데드라인 오브젝트를 하나 만들었습니다.


    그런 다음에 Edge 콜라이더를 만들어봅시다.


    원래 맨 윗 면만 박스콜라이더를 두려고했는데


    이왕 하는거 사방에 콜라이더를 둬봅시다.



    데드라인에 태그 달기 이미지입니다.데드라인에 태그 달기



    엣지 콜라이더를 두르는 건 태그를 단 뒤에 합시다.


    우선 데드라인 태그를 만들어주세요.


    태그하는 만드는 법은 다 아시리라 생각합니다.


    모르시는 분들은 >>여기<<서 확인해주세요.


    다음으로 엣지 콜라이더를 둘러봅시다.



    데드라인 엣지 콜라이더 수정 이미지입니다.데드라인 엣지 콜라이더 수정



    화살표가 가르키는 Edit Collider를 눌러줍니다.


    그러면 씬 창에 콜라이더가 생깁니다.


    엣지 콜라이더는 선으로 콜라이더를


    내 마음대로 그릴 수 있습니다.


    아래 영상을 보시면서 따라해주세요.





    화살표를 누르니 씬 창에 선이 작게 생겼을텐데요.


    눌러서 끌어주고 가운데를 눌러서 또 끌어주고,,


    이렇게 하시다보면 영상처럼 사방에 콜라이더를


    두를 수 있습니다.


    콜라이더를 다 두르셨다면


    다시 Edit Collider를 눌러주세요.


    자동으로 콜라이더가 저장됩니다.



    프리팹에 콜라이더 달기 이미지입니다.프리팹에 콜라이더 달기



    이제 게임 오브젝트(젤랑 총알)에 콜라이더를 만들어야합니다.


    콜라이더끼리의 충돌 여부는


    게임 오브젝트 모두 콜라이더가 있어야하고


    둘 중 한 오브젝트는 반드시 리지드바디가 있어야하죠?


    자세한 내용은 >여기<에서 확인해주세요.


    본론으로 돌아와서,


    이전에 만든 Instantiate 프리팹에


    박스 콜라이더를 달아줍니다.



    프리팹에 리지드바디 달기 이미지입니다.프리팹에 리지드바디 달기



    다음으로 다이나믹 리지드바디를 달아줍니다.


    중력은 0으로 설정해주세요.


    리지드바디에 대한 설명도 길게 안하겠습니다.


    리지드바디에 대한 자세한 설명은 >>여기<<에서 확인해주세요.


    다음으로 InstantiateScript 스크립트를 열어줍시다.



    아래 코드를 캡처한 사진입니다.이미지가 안보이시는 분들은 아래 코드 보기를 누르고 코드를 확인해주세요.




    기존에 위치 값으로 게임 오브젝트를 파괴했던 것을 지워주고


    콜리젼을 사용해서


    데드라인에 '닿으면' 게임 오브젝트(젤랑 총알)을 파괴하도록 해봅시다.


    이번엔 디버그 로그도 찍어봅시다.


    해당 코드를 입력 후 유니티로 돌아갑시다.






    자 게임 오브젝트(젤랑 총알)가 데드라인에 닿으니


    사라지는 것을 확인했습니다.


    이렇게 오늘 위치 값으로 오브젝트 파괴와


    콜라이더로 오브젝트 파괴를 알아보았습니다.


    현재 오브젝트는 '바로' 없어지고 있는데


    파괴를 지연시킬 수도 있습니다.


    Destroy(gameObject)에서


    gameObject뒤에 콤마(,)를 찍고,


    딜레이 할 시간을 적어주면됩니다.


    예를 들어 '5초 뒤에 사라져라.' 라고한다면


    Destroy(gameObject, 5f)


    를 사용하시면 됩니다.


    여기까지 유니티 오브젝트 파괴에 대해 알아보았습니다.


    다양한 곳에서 사용해보세요 ㅎㅎ


    이상으로 포스팅을 마치며,


    잘 읽으셨다면 댓글을 달아주세요.


    댓글은 저에게 다음 포스팅을 위한 힘이 됩니다 ㅠ ㅠ


    또, 카멜레온이 다뤘으면 좋겠다하는 포스팅 내용을 달아주시면,


    해당 내용에 관한 포스팅도 해보도록 하겠습니다.


    감사합니다 !

     


    Chameleon Studio가 만든 게임하러가기


    <젤랑점핑>

    안드로이드- market://details?id=com.Cameleon.TangTangBall

    IOS- itms-apps://itunes.apple.com/app/id1429522379



    <크러쉬팡>

    안드로이드- market://details?id=com.Chameleon.CrushPang 

    IOS- itms-apps://itunes.apple.com/app/id1450109331

     

    댓글

Designed by Tistory.