대주제를 정하다 보니 스프라이트로 적게 됬으나, 이번 글에서는 다음 2가지에 대해서 작성할 예정이다.타일맵(Tilemap)룰타일스프라이트 모드싱글(Single)멀티플(Multiple)폴리곤(Polygon)스프라이트 에디터테두리(Border)슬라이스(Slice)스프라이트 아틀라스(Sprite Atlas)이 두 기능은 각각 필드와 캐릭터를 구성할 때, 작업 간소화와 최적화에 유용한 기능으로, 관련 작업을 할 경우에는 거의 필수로 사용되는 기능이다. 마침 금주의 프로젝트를 진행하면서 익힌 요소도 있으니, 한번 총체적으로 정리 해 보자. 타일 맵타일 맵은 2D 게임을 제작할 때, 배경을 작성하기 위해서 사용하는 기능으로,간단하게 말해서 '타일 맵이라는 별개 요소에 스프라이트를 모아놓은 뒤, 원하는 위치에 간편하..
Quaternion은 Unity로 작업을 진행하며 매우 자주 쓰게 되는 요소입니다.그런 만큼, 기존에도 알고 있었던 요소지만, 본 블로그에서 상세하게 다루지는 않았어서 한번 정리 해 보았습니다. Quaternion에 대하여Quaternion은 Unity에서 방향 계산 시에 사용하는 개념이다. 일반적인 좌표계념과는 다른 방식을 쓰기 때문에 다소 다루기 까다롭긴 하나, 방향 계산이라는 것이 워낙 많은 곳에서 사용되다 보니, 반드시 익숙해져야 할 요소이기도 하다. Quaternion의 함수는 다음 4종류가 있는데, 어지간하면 Quaternion.Euler 하나만으로도 처리 가능한 편이다.Quaternion.Euler(Vector3) - Vector3에 해당하는 오일러 각도를 Quaternion으로 변경한다.Q..
금주에는 이전에 진행했던 Text RPG 제작 프로젝트를 팀 단위로 진행하였습니다.정확하게는 목표 달성도는 앞전의 개인 프로젝트 보다 높게 구성된 과제였고, 이를 팀 단위로 분업하여 제작 해 보는 것이 목표였습니다. git 주소: https://github.com/lsu0503/TextRPG_TeamProject2nd.git[게임은 Game 폴더 안의 exe파일을 실행하면 됩니다.] GitHub - lsu0503/TextRPG_TeamProject2nd: TextRPG_TeamProject2ndTextRPG_TeamProject2nd. Contribute to lsu0503/TextRPG_TeamProject2nd development by creating an account on GitHub.githu..
이번에 팀 협업을 하면서 느낀 점, 그 중 파일 구성 설계에 대해서 서술하려고 한다.※ 마지막에 총 정리가 있습니다.파일 구성 설계를 하는 이유Git을 쓰던, svn을 쓰던 협업을 한다고 하면 결국 같은 프로젝트 내에 개발자가 복수 배치되는 게 일반적이다.비단 개발자가 아니더라도 기획자나 아트, 기타 구성원들도 프로젝트를 계속해서 수정하는 게 현대의 개발 환경이며, 이 개발 환경에 의해서 발생하는 문제가 현대의 개발 환경에 가장 큰 숙달 요소라고 보는 것도 가능하다.그렇다면 이렇게 '같은 요소를 동시에 작업하는 것'의 가장 큰 난점은 무엇일까. 프로그래밍을 배우다 보면 락(Lock) 내지는 세마포어(Semaphore)라는 개념을 익히게 된다.이러한 '잠그는' 기능을 사용하는 이유는 '같은 파일을 동시에 ..
json과 csv, xml은 모두 데이터를 저장하기 위해 사용하는 데이터 포맷이다.사실 그냥 개발자가 데이터의 구성요소를 구분할 수 있도록 특정한 규칙을 따라서 저장한다면 txt로 저장한다고 해도 충분히 잘 굴러간다. 그렇다면 이 3가지 포맷이 필요한 이유는 무엇일까.일단 1차적으로 규격화된 방식이라는 점이 있겠다. 규격화 되어있는 방식이기에 누가 읽어도 이 포맷에 대한 지식 만 있다면 같은 내용을 보게 될 것이고, 이 점을 통해서 작업 공유에 불필요한 과정을 넘겨버릴 수 있게 된다는 장점이 있다. 그리고 2번째로는 호환성이 있다. Excel의 경우 현재는 Excel파일을 작성하면 csv로 저장할 수 있는 기능이 있다.또한 검색을 해 보면 꽤나 간단하게 찾아낼 수 있는 것이 위 3가지 포맷으로의 직렬화 ..
Dictionary는 '특정 분류에 해당하는 객체를 모아놓은 집합'(이하 '사전')을 작성하기 위한 컬렉션으로, Key와 Value의 조합의 집합체로 구성된다. [리스트와는 다른 방식.]다만, 본문에서는 C#에서의 Dictionary 기능 보다는 Dictionary로 구현할 수 있는 '사전'이라는 구조 자체에 대해서 작성해 볼까 한다. [사전을 구현한다고 한다면 관련 데이터를 클래스로 묶어 리스트로 만드는 등, 다른 방식도 있기 때문.] 그 전에 C#의 Dictionary의 사용법 부터 확인하고 넘어가자면,C#의 Dictionary 사용법Dictionary dict = new Dictionary(); // Dictionary 선언dict.Add(key1, val1) ..
앞서, Day 9에서 콘솔창 UI를 다루는 방법에 대하여 서술한 바 있다.[Day 9 [콘솔창 UI 작업에 관하여] - URL: https://lsu0503.tistory.com/58]오늘은 이 사항에 대해서 추가로 알게된 부분이 있어, 간략하게 작성하고자 한다.[관련 사항은 Day 9에도 적용이 되어 있다.] 손쉽게 글자를 정렬하는 법day 9에서 콘솔창의 글자는 전각과 반각 모두 1칸으로 적용되기에, 전각과 반각이 같이 쓰일 경우, 혹은 띄어 쓰기에 의해서 동일 좌표에 대한 커서 위치가 불명확하다고 언급한 바 있다.때문에 콘솔창에서 우측 정렬을 하기 위해서는 전각 글자의 개수를 일일히 세어서 추가로 빼거나, 혹은 숫자나 영어가 아니면 추가로 감소시키는 방법을 제시했었다. 금일은 조금 다른 방법을 소개..
금주에는 개인 프로젝트로 TextRPG 게임을 제작했습니다.사실 전투가 들어간다거나 그런 거 까진 아니고, 그냥 던전 들어가면 확률 성공이 과제였는데, 원하는 기능을 추가하라고 해서 전투 시스템을 비롯한 몇몇 시스템을 추가해 버렸어요.좀 잠을 많이 줄여서 만들었긴 하지만, 나름대로 재미있었고 유익했던 시간이었던 거 같습니다. ※ 사실, 이 게임이 2주차 과제인데, 추석 3일 휴일으로 기간이 꼬여서 3주차에 작성하게 된 거랍니다. [그래서 잘못적었다가 수정했어요.] [Git URL: https://github.com/lsu0503/TextRPG_Project2nd.git] GitHub - lsu0503/TextRPG_Project2nd: Wonder to the Fallen StellaWonder t..
오늘은 제너릭에 대해서 정리해 볼 까 합니다.사실은 개략적으로는 알고있었지만, 안쓴 지가 꽤 되다 보니 가물가물해서...이번 프로젝트에 쓰이기도 했고 해서 정리를 해 보려고 합니다. 제너릭에 대하여제너릭이란 코드를 입력할 때 타입을 정하는 것이 아닌, 컴파일을 할 때 타입을 정하는 방식을 말하는 것으로, 타입 선언을 가변화 하기 위해 사용하는 기능이다.이러한 구성을 통해서 코드에 유연성을 더해줄 수 있고, 이 유연성을 통해서 재사용 능력도 높아지게 되는 기능이라고 보면 좋다.특히 인터페이스 같은 상속 요소의 역량을 높여줄 수 있는 기능이기도 하기 때문에 익혀둔다면 유용하게 쓰일 것이다. 제너릭 사용법public class Class: Interface{ public ValueType Function(va..
델리게이트도 인터페이스와 마찬가지로 처음 봤을 때에는 '저거 왜 쓰지?' 싶은 요소였다.그냥 함수를 대리해서 불러와서 사용할 수 있는 요소 정도로만 느꼈었고, 그렇게 내 기억에서도 흐려져 갔다. 그러다가 팀원의 '델리게이트 활용하면 이런 문제도 해결 가능하다'는 말에 한 번 검색 해 보았다.생각보다 훨씬 활용도가 높았다. '함수 포인터 하나로 할 수 있는 게 이렇게 많아진다니...!'라는 생각 까지 들었을 정도.그러니 오늘은 이 델리게이트의 사용 방법에 대해서 알아보자. 델리게이트 사용법delegate val_1 Delegate(val_2 param) // 델리게이트 선언val_1 Function_1(val_2 param) // 델리게이트로 포인팅할 함수 1val_1 Function_2(val_2 pa..