본문 바로가기

유니티

(50)
유니티 A* 길찾기 알고리즘 구현 A* 알고리즘(A star algorithm) grid map 개념 및 구현 A* algorithm이란? A* 알고리즘(A* star algorithm)은 주어진 출발 노드(node)에서부터 목표 노드(node)까지 가는 최단 경로를 찾아내는 그래프 탐색 알고리즘 중 하나이다. 주어진 지도(map)에서 출발 지점부 recall.tistory.com 위 글을 바탕으로 구현되었으며 다른 점으로 장애물(벽)이 추가되었습니다. 장애물로 인하여 다음 조건이 추가되었습니다. 1. 장애물은 지나갈 수 없습니다. 2. 대각선으로 이동 시, 이동하고자 하는 노드 방향의 사이드에 장애물이 있다면 지나갈 수 없습니다. 코드 전체 using System; using System.Collections; using System...
유니티 모바일 레이싱휠 조이스틱 만들기 레이싱 게임은 모바일 환경에서 위와 같은 조이스틱을 마련해두고 있습니다. 페달은 유니티에서 기본적으로 제공하는 UIButton을 사용하면 쉽게 구현이 가능하지만 스티어링 휠처럼 원 형태의 입력방식은 기본 제공하지 않기 때문에 직접 구현하여야 합니다. 일반적으로 알려진 스티어링을 조작하는 방법은 잡고 돌리는 것으로 원 운동(회전)임을 알 수 있고, 2차원 평면에서의 회전은 아크탄젠트를 활용하면 어렵지 않게 다룰 수 있습니다. 목차 1. UI 디자인 2. 터치 좌표 가져오기 3. 터치 좌표로부터 회전 값 구하기 4. 스티어링 휠 완성 1. UI 디자인 Canvas를 추가하고 UI 오브젝트를 위와 같은 계층으로 구성합니다. SteeringWheel은 터치 좌표를 입력 받기위해 필요합니다. wheelImg는 스..
유니티 리듬게임 2.0을 개발했습니다. +코드(github) GitHub - LHEALP/UnityRhythmGame: 유니티엔진 리듬게임 UnityEngine RhythmGame 유니티엔진 리듬게임 UnityEngine RhythmGame. Contribute to LHEALP/UnityRhythmGame development by creating an account on GitHub. github.com 화려한 서커스(Splendid Circus) - 로스트아크 영혼을 데우는 스프(Consolation) - 로스트아크 3년 전 유니티 엔진으로 리듬게임을 처음 만들어보고 다음해 2020년에 Github에 공개한 적이 있었습니다. 어느덧 2022년이 되었고 다시 한 번 만들어보면 어떨까? 라는 생각에 5월 초부터 2.0 버전을 준비했습니다. 1.0 버전을 만들 때..
유니티 베지에 곡선 만들기 시간이 비어서(?) 예전에 읽었던 글(https://blog.coderifleman.com/2016/12/30/bezier-curves/)을 참고하며 유니티로 베지에 커브를 구현해보았습니다. 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100..
유니티 리듬게임 에디터를 Github에 공개하였습니다. UnityRhytmGame 프로젝트의 연장선인 Runthm (UnityRhythmgame Editor)프로젝트를 공개하였습니다. github.com/LHEALP/Runthm LHEALP/Runthm Contribute to LHEALP/Runthm development by creating an account on GitHub. github.com 부족하지만 많은 도움이 되길 바랍니다. + 추가로 github.com/LHEALP/UnityRhythmGame 에 일부 변경사항이 있습니다.
유니티 리듬게임 에디터 만들기 - 근황 및 계획 기존 만들어두었던 유니티리듬게임 프로젝트와 에디터 프로젝트를 병합할 예정을 토대로 사전 작업을 계획하고 있었으나 프로젝트 통합계획은 취소하였습니다. 사유는 시간을 너무 잡아먹기 때문입니다. 에디터 프로젝트는 URP에서 진행하였고, 기존 리듬게임 프로젝트는 레거시 2D에서 작업하였기 때문에 통합 시 어떤 문제가 생길지도 모르기 때문이기도 합니다. 사실 셰이더를 적극 활용한 프로젝트는 아니기 때문에 컨버팅 작업에 어려움을 겪진 않을 것으로 예상되나.. 동일 클래스명(뭐.. 네임스페이스로 묶으면 그만이나..) 등 기타 수반되는 작업들 ㅁㄴㅇㄹ. 주요 부분들은 완성이 되었다보니 기타 사소한 기능들을 작업하기에는 주어진 시간이 부족합니다. 아무튼 변명을 뒤로하고 한 마디로 정리하면 귀찮아서 입니다 ㅋㅋㅋㅋㅋㅋㅋ ..
유니티 리듬게임 에디터 만들기 - 알파버전 1 노트는 간략하게 직접 찍었습니다 배치한 노트들을 외부 파일로 저장하고 불러들이는 기능을 추가함으로써 최소한의 상태를 완성하였다. 이 과정이 예상보다 수월하지 못했는데 자칫 설계 대부분을 갈아 엎어야할 뻔했다. 원인은 float 부동소수점 자료형의 문제로 발생했다. 런타임상 대부분 동작 또는 오브젝트들은 float 값으로 제어되지만 데이터들을 외부 파일로 저장할 때는 int 정수형으로 컨버팅하기 때문에, 이를 다시 런타임중 불러들여 사용할 때 생기는 오차때문이었다. 가장 쉽고, 빠르고, 버그가 생기지 않을 것으로 예상되는 방법을 도출하여 해결했다. 앞으로, 몇 남은 기능들을 추가하고 기존에 만들어 두었던 유니티 리듬게임과 통합하여 플레이와 에디팅이 가능하게 할 것이다. github.com/LHEALP/Un..
유니티 리듬게임 에디터 만들기 - 그리드 + 스냅 기능 개선 노트 데이터들을 외부 파일로 저장하기 전에 해야 될 일들이 떠올라 개선하였다. 기존에는 그리드 + 스냅 기능을 통하여 사용자가 보다 편하게 노트를 찍을 수 있었지만, 그리드 상에서 노트가 어디에 배치될지 미리 확인할 수 없기 때문에 다소 불편한 감이 있었다. 전략게임 또는 건축물을 지을 수 있는 게임같은 경우 생성하고자 하는 오브젝트를 선택하고, 지면에 마우스 커서를 올리면 배치가 가능한 좌표에 따라 오브젝트의 모습을 미리 보여주는 기능이 있다. 배치 후의 모습이 예상 가능해지기 때문에 컨트롤 실수 방지와 같은 유저 경험을 증대시키는데 도움이 된다. 그래서 기존과 개선된 모습을 번갈아 보면서 확인해보면 마우스의 움직임에 따라 그리드의 스냅에 맞추어 노트가 배치 될 위치를 미리 알려주고 있음을 확인할 수 ..