일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- express
- IntelliJ
- springboot
- Python
- OAuth2.0
- 백엔드
- 게임개발
- 코딩
- 유니티
- node.js
- netlify
- 백준
- MongoDB
- bcrypt
- 깃
- spring
- JSON
- RiotAPI
- unity
- 게임
- jwt
- 스프링부트
- AWS
- oAuth
- frontend
- 스프링
- react
- c#
- 파이썬
- 프로그래밍
- Today
- Total
목록Unity (23)
Unwound Developer
레트로 유니티 교재를 따라만든 2D 런 게임이 있었는데, 그냥 연습용으로 지나친 프로젝트였기에, 정말 게임이라 보기에는 미흡한 점이 많습니다. 그래서, 교재를 끝마치고 첫번째로 하고 있는 것은 2D 런 게임, 이른바 '유니런'의 수정입니다. 새로운 프로젝트를 진행하는 것도 게임개발 학습에 많은 도움이 되겠지만 기존에 진행한 프로젝트를 수정 보완해 나가는 것도 그 만큼 도움이 될거라 생각했어요. 실제로 지금 수정,보완을 해보면서 교재에서 다루지 않았던 부분들도 많이 깨닫고 있습니다. 수정을 진행하면서 사용했던 유니티나 C#의 클래스,메소드 등의 기능들은 따로 정리해보려 합니다. 우선, 현재까지 보완한 게임의 모습이에요. 우선 타이틀 화면입니다. 기존에는 실행하자 마자 바로 게임이 시작되어서 불편했기에 이 ..
저는 저번 닷지 프로젝트처럼 발판 생성기를 두고 계속해서 랜덤으로 생성할 줄 알았어요. 하지만, 계속해서 발판을 실시간으로 생성하거나 파괴하는 Instantiate나 Destroy 메소드를 많이 사용하게 되면, 성능에 문제가 생길 수도 있다고해요. 그래서 이번엔 오브젝트 풀링이라는 기술을 사용한대요. 초기 실행시에 필요한 만큼 오브젝트를 생성하고, 필요할 때마다 활성화 한 뒤 가져와서 쓰는거에요. 그리고 필요 없을때는 파괴하는 대신 비활성화하고 풀에 반환하는거죠. 이렇게 생긴 플랫폼 프리팹이 제공되었어요. 가시는 밟으면 죽을거같네요. 플랫폼의 스크립트에요. 저 가시 세개를 배열로 가지고있고, 플레이어가 이미 밟은 발판인지를 판별할 bool타입 변수도 있습니다. OnEnable 메소드는 오브젝트가 활성화 ..
게임매니저 자체는 저번 닷지 프로젝트 때와 크게 다른게 없습니다. 그런데, 이번 게임매니저에는 싱글턴을 적용해요. 그 이유는 씬에 게임매니저 오브젝트가 여러개 생성되는것을 방지하기 위해서래요. 게임매니저 스크립트 내부입니다. static 변수는 여러개의 클래스 객체가 있어도, 변수를 공유하는 성질을 가지고 있어요. 그래서, 게임매니저 객체가 여러군데에서 생성되었어도 저 instance변수만은 같은 변수인거에요. instance가 null이 아니라면, 즉 이미 생성되어있다면 Destroy로 파괴해버리는겁니다. 한 개의 게임매니저만이 존재할 수 있게될거에요.
달리기 게임을 할 때 보통은 캐릭터가 앞으로 가는 것이 아니라, 지형과 배경이 캐릭터를 향해 오게해요. 그런데, 배경의 길이를 엄청 길게 정해놓고 배치하기는 불가능해요. 너무 길어요. 그리고, 지형도 일일이 다 설정해주기는 힘들거에요. 이번에 만드는 게임은 죽지 않는다면 무한대로 지형이 생성되어야 하거든요. 배경은 같은 배경이 계속 반복해서 나오는게 훨씬 효율적일거에요. 지형은 자동으로 생성되도록 할 겁니다. 똑같은 그림 두개를 붙여놓은겁니다. 1번화면부터 지나가다가 1번화면이 다지나가면, 1번화면을 다시 2번화면의 뒤에 붙이는 거에요. 이렇게하면, 그림 두장으로 무한히 배경을 지속할 수 있겠죠.. 일단 오브젝트들이 캐릭터를 향해 오도록 할게요. 왼쪽을 향해 초당 10의속도로 움직일거에요. 이건 배경을 ..