일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- MongoDB
- oAuth
- 코딩
- 백엔드
- jwt
- OAuth2.0
- netlify
- 프로그래밍
- RiotAPI
- react
- frontend
- spring
- 스프링
- 스프링부트
- 파이썬
- springboot
- 게임개발
- bcrypt
- unity
- 깃
- IntelliJ
- JSON
- 유니티
- 게임
- express
- Python
- c#
- node.js
- 백준
- AWS
- Today
- Total
목록전체 글 (84)
Unwound Developer
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Frqgq/btrqndUFFxa/wo8LnO7w2CkGweJEOulVXk/img.png)
지금 공부하고 있는 책의 첫 프로젝트 닷지가 끝났습니다. 너무 간단한 게임이라 이것저것 추가해보려했는데, 우선 책에 있는 프로젝트를 모두 끝내고나서 수정/추가 해보려합니다. 다음은 2D 런게임인데, 책에선 유니런이라고 하네요. 유니티 + 런 = 유니런인가봐요... 그런데, 계속 게임을 유니티 기본 오브젝트같은거로 만들 순 없잖아요. 런게임을 하는데 무색무취의 정육면체들이 막 뛰어다니는거면... 그래서, 책에서는 에셋들을 제공해줘요. 사운드나 이미지, 스크립트의 뼈대를 제공해줬어요. 그럼 이 제공받은 에셋들로 시작할게요. 우선 startplatform이라고, 게임을 시작하는 첫 발판을 만들어요. 아, 이번 프로젝트는 2D 프로젝트로 만들어요. 그리고 이 오브젝트에 2D 박스 콜라이더를 추가해요. 2D로 해..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/5IdVM/btrp6HCjYdm/60LxrT0LvER57ukTn59ma0/img.png)
UI는 User Interface의 줄임말이에요. 게임을 진행할 때, 화면에 게임 외적으로 글씨나 아이콘 등으로 기능을 제공해주는 것들을 본 적 있을거에요. 게임을 진행하는데 있어서 UI가 없다면, 진행 자체가 불가능할 것입니다. 유저에게 게임의 전반적인 진행상황이나, 편의를 위한 기능들을 제공해주기 때문이에요. 유니티는 UI도 그냥 씬 속의 오브젝트로 취급해요. 그래서, 별도의 화면으로 이동할 필요없이, 다른 오브젝트들 처럼 생성하고 관리할 수 있어요. 전 Text를 선택할게요. 그리고 Text를 선택해보면 저 네모난 top center라고 되어있는게 앵커라고 하는 것입니다. 텍스트를 화면 어디에 표시할지 정렬하는 기능을 가지고있어요. 누르면 이런 모양으로 나오는데, 저는 가운데 위쪽으로 정렬했어요. ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/mIS5T/btrp2DGBuML/SKEAvKdvMtire4Ko4EsFN1/img.png)
만들었던 Bullet을 자동으로 여기저기서 나오게 해야겠죠. 일단, Bullet을 계속 자동 생성해줄 오브젝트를 만들어요. Spawner라고 할게요. 이렇게 원기둥 네 개를 배치했어요. 원기둥은 3D 오브젝트에 Cylinder라는 것 입니다. 이 스크립트에서 사용할 변수들 이에요. 사실, 책에서 사용하는 방법 말고도 오브젝트 생성기를 만들 방법은 다양할 것 같아요. 일단 책에 나온 방법대로 했어요. bulletPrefab은 총알 오브젝트 변수에요. 0.5 ~ 3초 사이에 자동으로 생성되도록 변수를 두개 생성했어요. 그리고, target변수는 플레이어를 향해서 총알 오브젝트가 생성될 수 있도록 플레이어 오브젝트의 방향을 설정해줄 변수에요. 그리고, spawnRate와 timeAfterSpawn은 계속해서 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dvpkl5/btrp3Wy4yLF/RwlTwLJlH60hiXy0e4MKKk/img.png)
닷지 게임을 하려면, 총알이 나와야 하겠죠. 플레이어를 죽이는 총알을 만들어볼게요. 총알은 3D 오브젝트에서 구 모양으로 대충 만들었어요. 중요한건, Rigidbody컴포넌트를 적용시키고, 여기서 Use Gravity속성을 제거해야하는 거에요. 닷지를 하는데 총알이 계속 땅에 떨어지기만 해버리면 안되잖아요. 그리고, 또 중요한게 있어요. 총알이 플레이어에 닿으면 플레이어가 사망해야하는데, 이렇게 오브젝트에 닿거나 했을때 트리거로 작용하게 하는 속성이 있어요. Sphere Collider 컴포넌트에 Is Trigger가 있는데 얘를 체크하면 트리거로써 사용된대요. 이제 Bullet의 스크립트를 작성해볼게요. 일단, Start 메소드에요. 플레이어 스크립트와 같이 속도 변수와, Rigidbody 객체를 생성..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bOtpla/btrp6cuAqu2/mbnigrr213liXZ1Oln4ipK/img.png)
우선, 제가 유니티를 현재 공부할때 사용하는 책은 '레트로의 유니티 게임 프로그래밍 에센스'입니다. 왠지 말 안하면 저작권같은거 걸릴까봐.. 책 전반부에 있는 C# 프로그래밍이나, 유니티 UI사용 같은 것들은 빠르게 넘어가고, 1권 후반부에 있는 간단한 프로젝트를 진행하며 유니티를 공부하게 되었어요. 책에서 첫번째로 진행한 프로젝트는 '닷지'게임 입니다. 그냥 맵에서 자동으로 생성되는 총알을 피하는 게임인데, 다행히 구현이 어렵진 않더라구요. 우선, 플레이어를 생성할 때 당연히 물리적인 것들이 적용되어야 하니까 Rigidbody 컴포넌트를 추가했어요. 플레이어야 그냥 3D object 아무거나 추가해서 만들었는데, 여기서 봐야할 부분 중 첫번째는 Freeze 관련된거겠네요. 우리가 플레이어를 조종할 때,..