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