일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- 오브젝트 풀링
- VR
- 유니티 Json 데이터 연동
- 개발일지
- 모작
- OVR
- 연습
- CGV
- 유니티 UI
- 팀 프로젝트
- 팀프로젝트
- HAPTIC
- 길건너 친구들
- XR
- meta xr
- 앱 배포
- ChatGPT
- 가상현실
- meta
- Oculus
- 드래곤 플라이트 모작
- 유니티
- 멀티플레이
- 드래곤 플라이트
- 포트폴리오
- input system
- 유니티 GUI
- 개발
- 오큘러스
- Photon Fusion
- Today
- Total
목록모작 (25)
EasyCastleUNITY
기존에 만들어둔 뗏목 탑승에서 문제가 발생했습니다. 물에 빠지면 죽는 조건을 추가하면서 생긴 문제입니다. 뗏목과 충돌하면 bool 변수 isOnRaft가 true가 되어, if문이 실행이 되지 않아야 합니다. 하지만, 뗏목과 부딫치기 전에 물과 충돌하는 경우가 발생했습니다. 물과 먼저 충돌하여, isOnRaft가 false인 상태이기에 플레이어가 먼저 사망을 하게 되고, 뗏목은 탑승하지 못합니다. 하지만 위치 상으로는 뗏목에 탑승하는 것이 정상이기에 이 문제점을 해결해보려고 합니다. 이 문제가 생기는 원인은 바로, 물이 뗏목보다 먼저 충돌처리가 동작한다는 점입니다. OnTriggerEnter는 유니티 자체 메서드이기에, 제가 충돌 순서를 바꾸는 것은 할 수 없습니다. 그래서 유니티 이벤트 호출 순서를 다..
해당 게임의 포인트는 저장을 하지 않아도 되지만, 최고 기록과 코인은 저장을 하고 불러와야 합니다. 그래서 이 최고 기록과 코인을 간단하게 유니티에서 제공하는 PlayerPrefs 클래스를 사용하여 저장해보려고 합니다. Window에서 PlayerPrefs를 통해 저장하면 데이터들은 위에 위치에 저장되게 됩니다. 이 위치는 에서 접근할 수 있습니다. 포인트는 플레이어의 onPoint 대리자가 호출되면 증가하고, 코인은 onCoin 대리자가 호출되면 증가합니다. 이렇게 포인트와 코인은 증가하는데, 이 데이터들을 저장할 필요가 있습니다. 코인은 한번 먹으면 사용하지 않는 이상 사라지지 않고, 포인트는 저장할 필요가 없지만, 최고 기록 포인트는 저장을 해줘야 합니다. 그래서 Playerprefs 클래스를 사용..
https://easycastleunity.tistory.com/179 길건너 친구들 모작 개발일지10 ( 씬 초기화 테스트, 이벤트와 관련된 Error) 죽으면 다시 원래 위치로 플레이어가 돌아가고, 맵도 바뀌어야 합니다. 맵은 애초에 생성이 랜덤이고, 플레이어의 위치는 초기시작 위치가 되어야 하기에, 가장 간단한 방법은 같은 씬을 다시 easycastleunity.tistory.com 저번 10번째 개발일지에서 씬전환을 테스트 하고, 그에 따라 생기는 오류를 해결하였습니다. 이번에는 실제 GameScene에서 씬전환을 해보고, 씬전환 할때, 나오는 연출들도 구현해보겠습니다. 위에 보이는 영상처럼, 실제 길건너 친구들은 게임이 끝나고 죽으면, 버튼을 눌러 재시작 할 수 있습니다. 씬 전환 스페이스바를 ..
죽으면 다시 원래 위치로 플레이어가 돌아가고, 맵도 바뀌어야 합니다. 맵은 애초에 생성이 랜덤이고, 플레이어의 위치는 초기시작 위치가 되어야 하기에, 가장 간단한 방법은 같은 씬을 다시 한번 로드하는 방법입니다. 그래서 이 씬 로드를 테스트 해보았습니다. 스페이스바를 누르면 씬이 초기화 되도록 했습니다. 초기화가 잘 실행됩니다. 그런데, 움직이는 순간 MissingReferenceException 오류가 발생했습니다. Error 이유 Error 로그를 잘 읽어보니, Animator와 InputActions가 사라져서 생기는 문제였습니다. 여러 군데 로그를 찍어보며 확인해보니, 위에 부분들에서 발생하는 문제였습니다. 위에 코드에서 performed와 canceled에 이벤트를 등록합니다. 하지만, 삭제하는..
비트맵 폰트 여태까지는 넥슨에서 제공하는 Maplestroy 폰트를 이용하고 있었습니다. 하지만, 게임 특유의 네모네모한 감성을 살리지 못해서, 비트맵 폰트를 만들어서 사용해보려고 합니다. https://horeng-study.tistory.com/9 BMFont, 이미지를 폰트화 해서 Unity에 사용하기 - BMFont 설치 - (1.14버전은 베타 버전이라고 써있기에 1.13버전을 사용함, 차이는 모릅니다.) BMFont - AngelCode.com Bitmap Font Generator This program will allow you to generate bitmap fonts from TrueType fonts. The application ge horeng-study.tistory.com 이..
기본적인 맵 생성 및 장애물 생성을 마치고, 이제 플레이어 이동을 통해 점수와 먹은 코인을 저장하고 UI로 보여주어 보겠습니다. 이 처리들을 충돌감지를 통해 만들어 보겠습니다. 땅과 충돌하면, 포인트 증가 물리적으로 충돌을 하면, 플레이어 조작의 문제가 발생합니다. 따라서, 물리적으로 충돌말고, Trigger를 사용하여 충돌을 검사합니다. Ground 태그는 모든 땅들에 부여되어 있습니다. 그리고 옆이나 뒤로 갔을 때, 포인트를 획득하면, 안되므로 플레이어의 이동방향을 저장하고 있는 moveDir이 forward 즉, 앞으로 이동하는 것이 아니라면, 포인트 처리를 하지 않게 하였습니다. 이 포인트는 플레이어에서 처리하는 것이 아니라, 대리자를 호출하여, 충돌 이벤트가 발생했다는 것을 GameMain에 전..
앞에 포스팅에서, 플레이어의 이동을 장애물을 통해 제한하였습니다. 그러므로 이제, 실제 인게임에서 장애물을 생성하여, 플레이어의 이동을 막아보겠습니다. 장애물은 다음과 같은 2개의 용도로 사용됩니다. 1. 일정범위이상 못 움직이게 하기 위해 배치된 경우 2. 플레이어의 이동경로를 제한하기 위해 그래서 저는, 무조건 설치되는 Default 장애물(1번 용도)과, Random 장애물(2번 용도, 설치 안 될 수 도 있음)로 나누어서 만들어 보도록 하겠습니다. 먼저 Default 장애물입니다. 캐릭터의 이동범위를 제한해야 하므로, 넘어가면 안되는 위치에 만들어져야 합니다. 그래서, 빈 오브젝트를 통해, 위치를 지정해주었습니다. 그리고 미리 만들어둔 3개의 프리팹들을 등록하여 주었습니다. 그리고 위에서 지정한,..
추석 연휴 동안 푹 쉬고 다시 모작 개발을 시작했습니다. 여러분은 푹 쉬셨나요? 푹 쉬셨기를 바라며, 이제 다시 모작 개발 시작해보겠습니다. 이동제한 여태까지는 미봉책으로 Clamp를 사용하여, 플레이어의 움직임 범위를 제한했습니다. 하지만, 실제 길건너 친구들에서는, 특정 범위를 넘어가면, 죽는 기믹이 있습니다. 따라서, 이동 위치를 직접적으로 제한하는 Clamp는 사용하지 않는 것이 맞습니다. 그래서 자세히 살펴본 결과, 게임 내에서는 위에 나온 강 말고는, 모두 여러가지 장애물을 통해 이동을 막아둔 것을 확인 할 수 있었습니다. 장애물의 특징은, 플레이어 앞에 장애물이 있을 경우, 그 위치로 이동하지 못한다는 점이 있습니다. 그래서 캐릭터가 본인 앞에 장애물이 있다는 것을 인식하고 있어야 합니다. ..