핵심 용어 Destroy, Tag, gameObject.name, OnCollisionEnter 일단 오소리 몬스터를 만들었습니다. 오소리는 Rigidbody 2D를 추가하여 중력을 추가해주었고 Collider 2D를 추가하여 땅과 충돌체크를 하게 해줘서 서있을 수 있게 해주었습니다. 오소리를 이동시켜주는 스크립트는 따로 만들어서 추가해줬습니다. 유니티에서 m_fSpeed의 값을 입력하면 일정 속도로 한 방향으로 이동하는 스크립트입니다. 이제 이 스크립트에 오소리와 플레이어가 부딪치면 플레이어가 죽는(삭제)되는 코드를 적어야됩니다. OnCollisionEnter2D는 충돌체크하는 함수인 것은 다들 아실겁니다. 함수 블럭안의 코드를 읽어보겠습니다. if(Collision.gameObject.name == ..
핵심 기능 is Trigger, Collider, Rigidbody 사진을 보시면 제가 간단히 공중에 떠있는 발판을 만들어놨습니다. 물론 플레이어 게임 오브젝트가 올라갈 수 있습니다. 이 부분에 대해서는 블로그 글을 꾸준히 읽으신 분은 충분히 할 수 있다고 생각합니다. 그런데 문제가 있습니다. 보통 2D 게임에서 발판 밑에서 점프를 하면 캐릭터가 발판을 통과한다음 발판위로 착지를 합니다. 그런데 현재 우리가 알고있는 지식으로는 통과할 수가 없죠. 어떤 작용들이 거쳐야 캐릭터가 점프했을 때 발판을 통과한 다음 발판위에 착지할 수 있는지 알아보겠습니다. 우선 캐릭터가 점프 했을 시 발판을 감지하고 통과해야 합니다. 통과된 이후에는 다시 발판과 충돌처리가 되어 위에 서 있어야 합니다. 저 초록색 부분은 콜라이..
요즘 유니티글을 안올린 이유는 정확히 알지도 못하는데 괜히 게시글 쓰면 혹시나마 남에게 피해가 갈까봐 안올렸습니다. 그런데 생각해보니 애초에 개인 공부목적으로 글을 쓰는 것이니 이런 걱정을 왜 해야하나 싶더라구요. 그래서 다시 열심히 써볼려고 합니다. 화이팅 ~ 현재 점프는 상당히 부자연 스럽습니다. 빠르게 연타하면 부들 부들 떨리는 모습이 보이기도 하죠. 보통 "점프"라는 개념은 그렇지 않죠. 떨리는 모습이 보이는 이유는 점프 입력 후 Rigidbody 2D에 의해 중력이 작용하기 때문입니다. 점프는 도약시 힘이가해지며 점프를 하고있는 동안에는 점프를 할 수 없습니다. 지금 플레이어 게임 오브젝트처럼 점프를 한 순간에도 점프가 입력되 부들 부들 떨리는건 매우 부자연 스럽다고 할 수 있습니다. 정리를 해..
이제 캐릭터에 물리개념을 넣어야 합니다. 왜냐하면 사람이 걸어다닌 다는 것은 중력이 작용한다는 말입니다. 중력이 작용해야 땅위에서 사람이 생활할 수 있죠. 캐릭터들도 마찬가지 입니다. 중력이 작용해야 땅위에 서있을 수 있습니다. 계층에서 캐릭터를 선택 후 Inspector에서 Add Component -> physics 2D를 선택합시다. 굉장히 다양한 물리법칙이 있는데 Rigidbody 2D를 선택합니다. 이걸 추가해주면 해당 캐릭터(게임 오브젝트)는 물리법칙이 생깁니다. 어떤 물리법칙이 생기냐고요? 바로 중력이 생깁니다. 하지만 역시 또 문제가 있습니다. 땅을 만들었는데 땅위에 안있고 떨어져버리죠. 지금은 땅이라는 개념이 아니라 그냥 이미지 소스를 넣은 것 뿐입니다. 이 오브젝트 역시 물리개념을 넣어..
5강에서 각 오브젝트마다 속도를 다르게 주는 방법에 대해 배웠습니다. 그런데 뭔가 허전하죠? 게임 환경이 없어서 그렇습니다. 여우가 걸어다닐 땅, 독수리가 날아다닐 하늘같은 게임 환경이 필요합니다. Assets 폴더에서 Environment(환경) 폴더를 선택합시다. 1강에서 선택했던 에셋 스토어에서 가져온 소스에 왠만하면 맵 환경에 해당하는 이미지 소스가 있을 겁니다. 그 중에 일정한 크기에 맞게 잘라놓은 tileset-sliced.png 이미지 소스를 찾아야합니다. tileset-sliced.png 이미지 소스에 화살표를 클릭하면 잘라놓은 이미지 소스가 조각별로 나옵니다. 물론 이런 식으로 하나 하나 노가다로 넣는 방법도 있긴 합니다만... 더 좋은 방법이 있습니다. 상단 탭의 GameObject -..