C# 8

04/21 TIL 클래스 인터페이스, 이벤트 방식 고민

이전에 진행한 개인 프로젝트를 팀 프로젝트로 확장해서 진행하게 되었다.혼자 작업하는 것이 아니다 보니 남들이 내가 작업한 클래스에 접근하려면 어떤 방식이 제일 간편하고 유지 보수도 편할지를 계속 고민하게 되는 부분이다.언제나 최악을 가정해서 딸깍 한 번으로 내 클래스의 기능이 다 동작하게 한다면 좋겠지만, 아직 그렇게까지 유연하지도 실력이 되지도 않는 거 같다.잡설은 적당히 하고 인터페이스 방식과 이벤트 방식의 차이점에 대해서 알아본 것을 정리하고자 한다. 인터페이스 vs 이벤트 우선 둘의 공통점을 봐보자. 퀘스트를 작업하고자 했으니 퀘스트로 예시를 들자면- 조건을 외부에서 체크하지 않는다- 퀘스트 진행도와 완료 여부는 각 클래스(객체)에서 관리- 기능적으로는 동일하다( 특정 행동을 했을 때 해당 퀘스트..

04/11 TIL - C#의 가비지 컬렉터

이번 캠프를 통해서 말로만 듣던 C#이라는 언어에 대해 처음 접하게 되었고, 이에 대한 설명을 찾아보던 중 예전 학원에서 들었던 "C#을 하던 사람은 C++ 스타일에 매우 많은 어려움을 겪는다(사실상 적응 못한다)"이 이야기가 떠오른다.일단 C#은 .NET이라 부르는 플랫폼에서 실행되는 언어로 일반적인 C/C++ 언어들은 코드가 컴파일러에서 기계어로 바로 변환해주는 반면 중간에 C# 코드 -> 언어 컴파일러(csc) -> IL(Intermediate Language)로 변환되어 가상 머신 역할을 하는 CLR에서 실행된다. 위 이야기는 C#의 구조에 대한 이야기고 앞서 말한 C++과의 차이점을 이야기 하자면 GC라고 하여 가비지 컬렉터가 존재한다는 점.C++에서는 메모리나 스레드 관리를 개발자가 직접 관리..

03/24 - Unity 익숙해지기 5일차

드디어 사전캠프로 제공되는 모든 강의를 다 들었다.반복해서 비슷한 프로젝트를 진행하다 보니 기초적인 충돌 처리나 오브젝트 생성 및 스크립트 적용에는 어느 정도 익숙해졌다고 자신한다.이전 프로젝트들에서 진행했던 내용들의 응용이 주다 보니 계정을 생성하거나 프로젝트의 빌드를 윈도우에서 안드로이드로 바꾸는 법, 광고를 붙이고 스토어에 올리는 과정을 알게 된 것이 오늘의 TIL이 되겠다.내용이 좀 짧지만 아무래도 사전 캠프다 보니 새롭게 배우게 될 내용들이 대부분 unity 프로젝트에 관련한 것이라 세분화해서 배우는 본 과정에서 길어지지 않을까 싶다.내일부터는 미리 개인 공부를 포함해서 사전 퀘스트로 주어진 내용들을 진행해야겠다.

0321 TIL - Unity 툴 익숙해지기 4일차

어제 다짐했던 남은 강의를 마무리하자는 실패했다.invokerepeating으로 오브젝트를 생성할 때 너무 많은 수의 오브젝트가 계속해서 생겨나는 부분을 해결하지 못해 애를 먹다 오브젝트 생성 코드를 update 함수에 중복으로 넣은 것이 문제였다.코드를 수정하면서 복붙하는 과정에서 실수한 모양이다.사소하면서 초보적인 실수인지라 찾는데 더 오래 걸린 듯 하다.주말동안 마저 끝내는 걸로..!

03/20 TIL - Unity 툴 익숙해지기 3일차

오늘도 어제와 같이 사전 제공된 온라인 강의로 간단한 게임 제작을 진행했다.Scene을 나눠서 제작하는 과정에서 에러가 발생했는데 로드하려는 Scene이 빌드에 포함되어 있지 않았다는 에러였다.해결은 금방할 수 있던 것이 File->Build Profile에서 scene 리스트를 수정해주면 끝이었다. 내일까지는 남은 강의를 다 마무리 가능할 것으로 생각된다.남은 강의들은 온라인 강의를 따라가기 보다는 제공된 문서를 바탕으로 혼자 작업하다 막히는 부분에서 강의를 재생하면 될 것 같다.아무래도 여전히 unity가 많이 어색하니까...::몸에 베어야 할 습관::타겟 프레임을 맞춰서 작업하는 것을 꼭 잊지 말자사람들이 게임을 하는 환경은 매우 다양하니까

0319 TIL - Unity 툴 익숙해지기 2일차

내일배움캠프에서 제공하는 사전캠프 강의의 2주차를 진행했다.unity로 기본 화면 구성하는 법과 오브젝트들을 생성하고 서로 어떻게 상호작용을 시킬 것인지에 대해서 복습하는 시간이었다.물체를 떨어뜨리고 싶다면 ligidbody를 적용한다던가, 서로가 충돌하는 판정을 일으키고 싶다면 collider를 추가한다와 같은 것들기록을 저장하기 위한 방법으로 Playerprefab에 key를 넣어 추가하거나 꺼내오는 방법도 알게 되었고 싱글톤 클래스인  GmaeManager로 전체 흐름을 잡을 때 여러 오브젝트를 GameManager에 추가하는 것은 쉽게 실수할 수 있으니 이는 인지해야겠다. 여러모로 C#이라는 언어가 스크립팅을 중점적으로 만들어진 언어다 보니 편리함에 익숙해져버릴 것 같아 c++ 관련 강의를 좀 들..

03/18 TIL - Unity 툴 익숙해지기

Hierachy에 오브젝트 추가 및 애니메이션 구현을 위한 이미지 삽입 방법assets에 이미지를 넣은 후 animation clip 생성, 생성한 clip 창에서 애니메이션을 넣고자 하는 오브젝트를 hierachy 창에서 선택, 그 후 assets 폴더에 넣었던 이미지들을 순차적으로 넣어주면 가능 -> 오브젝트 선택에서 헷갈려서 조금 헤맨 부분 전체적인 흐름을 담당할 게임 매니저 스크립트 부분에서 사용하고자 하는 오브젝트를 추가해야지만 정상 작동, 그렇지 않다면 UnassignedReferenceException: The variable endPanel of GameManager has not been assigned.You probably need to assign the endPanel variab..

내일배움캠프 Unity 9기 사전캠프(03/17) - Unity 프로젝트 조사 및 TIL

Unity를 이용해 만든 프로젝트 서비스 명장르, 분류제작사첫 번째 프로젝트Lethal Company호러Zeekerss두 번째 프로젝트GTFOFPS10 Chambers Collective세 번째 프로젝트 던그리드로그라이크TEAM HORAY네 번째 프로젝트INSIDE퍼즐,어드벤쳐PlayDead다섯 번째 프로젝트Cities: Skylines II시뮬레이션Colossal Order 위 프로젝트들의 공통된 특징이 있나요?게임 제작사의 개발 인원들이 1인 개발이거나 소수의 인원으로 이루어져 있다는 점 여러분이 생각하는 Unity의 강점은 뭐라고 생각하나요? 접근성이 좋고 많은 사람들이 사용했다는 점에서 무료 강의들이나 에셋들이 다른 게임 엔진들에 비해 많다는 점여러분은 Unity를 이용해 어떤 게임을 만들어보고 ..