
저는 내일배움캠프 Unity 게임개발 트랙 8기에 참여하게 되었습니다! 내일배움캠프는 매일 TIL이라는 것을 작성해야 하는데, TIL이란 Today I Learned의 준말로 하루 동안 배운 것들을 간단하게 기록하는 것입니다. TIL을 작성하는 이유는 트랙이 진행되는

[1. 홀수 출력] > > > [2. 배열을 사용한 합계 및 평균 계산] > [3. 팩토리얼 계산] > [4. 숫자 맞추기 게임] > [5. 이중 반복문을 사용한 구구단 출력] > [6. 배열 요소의 최대값과 최소값 찾기] > [7. 행맨 게임

저는 컴퓨터공학을 전공해서 여러 프로그래밍 언어를 접해봤고, \`CC++에서 콘솔창에 Hello, World!를 출력하려면 아래와 같이 작성한다.Cout << "Hello, World!;실행 결과)Hello, World!그러나 \`CConsole.WriteL

강의를 들으며 이미 확실하게 아는 내용보단 잊고 있었던 내용이나 새로알게 된 지식을 바탕으로 정리했습니다. [1. C# 언어와 .NET 프레임워크] [1.1 C# 언어의 특징] 객체 지향 프로그래밍 언어이다. 강력한 형식 시스템과 가비지 컬렉션 기능을 제공한다.

제너릭은 클래스나 메소드를 일반화시켜 다양한 자료형에 대응할 수 있는 기능이다.제너릭을 사용하면 코드의 재사용성을 높일 수 있다.C\* 제너릭 클래스나 메소드에서 사용할 자료형은 선언 시점이 아닌 사용 시점에 결정된다.제너릭 클래스나 메소드를 사용할 때는 <\\T

[내용 정리] ** 다중 상속을 허용하면 한 클래스가 두 개 이상의 부모 클래스로부터 동일한 멤버를 상속받을 수 있다. 이 경우, 같은 이름의 멤버를 가지고 있을 때 어떤 부모 클래스의 멤버를 사용해야 하는지 모호해진다. 그래서 이런 모호성을 해결하기 위한 규칙이

[내용 정리] 정렬 알고리즘이란?  주어진 데이터 세트를 특정 순서(대개는 숫자의 오름차순 또는 내림차순, 문자열의 사전식 순서)로 배열하는 방법을 제공하는 것이다. 1. 선택 정렬 (Selection Sort) 선택 정렬은 배열에서 최소값(또는 최대값

\*\*\*오늘은 직렬화를 이용해 C먼저 직렬화가 무엇인지 알아보자<직렬화란?>컴퓨터 과학의 데이터 스토리지 문맥에서 데이터 구조나 오브젝트 상태를 동일하거나 다른 컴퓨터 환경에 저장(이를테면 파일이나 메모리 버퍼에서, 또는 네트워크 연결 링크 간 전송)하고 나중

오늘은 과제를 제출하고 시간이 남아 프로그래머스 문제를 풀어 보려고 한다. 아직은 알고리즘 문제를 해결하는 데 C#을 사용하는 것이 익숙하지 않으므로 난이도는 1 ~ 2정도의 문제를 풀 생각이다. [1. 문자열을 정수로 바꾸기] ** 문자열 s를 숫자로 변환한 결

\*\*\*오늘은 C<문제>임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.<제한 사항

오늘은 팀프로젝트를 진행하던 도중 정말 난해한 상황이 있어서 TIL에 남겨보려고 한다!C이런식으로 사용하면 randomNum 이라는 변수에는 int의 범위 중 양의 정수 범위 내의 랜덤한 값을 반환한다. (0 ~ 2,147,483,647)그리고 자신이 정한 범위 내에서

오늘은 ICloneable 인터페이스를 이용해서 클래스를 복사하는 방법을 알아보자프로젝트를 진행하던 중 Monster 클래스로 만든 객체를 복사하여 그 복사한 객체의 Hp를 감소시켰더니 같은 종류의 모든 몬스터의 Hp가 전부 감소되는 상황이 생겼다.그 이유는 위에서 진

오늘은 프로젝트에서 스킬 부분을 구현했다. 스킬 부분을 구현할 때 가장 핵심이라고 생각하는 인터페이스(Interface)에 대해 알아보자.인터페이스는 클래스의 다중 상속이 허용되지 않는 C<인터페이스란?>추상 클래스보다 높은 수준의 추상 멤버로만 구성된 클래스를

오늘은 팀프로젝트 과정에서 Save와 Load를 구현했던 부분을 기록해보려고 한다.직렬화와 역직렬화에 대해 알아야 이해할 수 있는 내용들이니 앞서 작성했던 글을 참고하자!링크 : \[TIL 7일차 - C내가 작업하고 있는 환경인 Visual Studio 2022 에선

\*\*\*오늘은 팀 프로젝트를 마무리하고 발표까지 진행했다. 때문에 다른 것을 개발하며 공부할 시간이 없었다. 그래서 오늘은 팀 프로젝트를 통해 C<문제>어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호

나는 Unity를 접해본 경험이 있어서 강의를 들으면서 확실하게 아는 내용보단 까먹고 있었던 내용이나 새로 알게된 사실 위주로 정리하려고 한다.먼저 스프라이트(Sprite)란, 이미지나 그림을 나타내는 2D 그래픽 오브젝트이다. 게임 내에서 캐릭터, 배경, 아이템 등을

오늘은 유니티 입문 강의를 마치면서 이전에 TIL로 정리했던 내용을 제외하고 새로 학습한 내용을 정리해보려고 한다.<타일맵이란?>2D게임 개발에서 격자 기반 맵(Grid-Based Map) 을 쉽게 생성하고 관리할 수 있는 기능이다. 타일(Tile)이라는 작은 사

오늘은 메타버스 게임을 만들기 위해 새로운 프로젝트를 파서 진행하려고 하는 데, Unity와 Visual Studio가 연동되어 있지 않아 자동완성이 안 되고 문법오류를 잡아주지 않아서 해결하는 데 많은 시간을 소요했다... 그래서 해결하기 위해 진행했던 방법들을 정리

Unity 2022.3.17f 버전을 사용하여 Metaverse 게임을 개발하던 도중 Player가 Raycast를 쏘고 그 RayCast가 상호작용 가능한 오브젝트에 닿았을 때 상호작용 버튼이 뭔지 알려주는 기능을 구현하려는 상황.Raycast2D를 PlayerCon

오늘은 개인 프로젝트를 제출하고 구현이 아쉬웠던 부분을 찾던 도중 대화창을 조금 더 발전 시킬 수 있을 것 같아서 구글링을 하며 공부한 내용을 정리해볼 예정이다. [1. 내가 구현한 대화창] 일단 내가 생각하고 구현한 로직은 다음과 같다. >1. 상호작용 가능한

제네릭은 객체지향 프로그래밍에서 사용하는 기법으로, 데이터 타입을 일반화하여 코드의 재사용성을 높이고, 타입 안전성을 제공하는 기법이다. 제네릭을 사용하면 다양한 데이터 타입에 대해 동일한 코드를 작성할 수 있다.문장만으론 이해하기 힘드니 이해하기 힘드니 쉽게 비유해서

오늘은 궁수의 전설 모작 프로젝트를 진행하며 플레이어가 멈췄을 때 가장 가까운 적을 자동으로 타겟팅하고 공격하는 것을 구현했다.참고 : https://www.youtube.com/watch?v=o1GwBOO8ru0참고 영상을 보면 구현 코드를 직접적으로 보여주

Unity에서 자주 사용하는 트윈(tween) 라이브러리이다. 트윈이란 오브젝트의 시간당 변화를 부드럽게 하는 애니메이션 기법이다. 이를 활용하여 오브젝트의 위치, 회전, 크기, 색상 등을 자연스럽게 변화시킬 수 있다.DOTween은 기본적으로 무료로 사용 가능하지만

오늘도 마찬가지로 진행 중인 프로젝트가 막바지에 접어들어 공부보단 자잘한 버그 픽스 위주로 진행해서 쉬면서 풀었던 프로그래머스 문제를 리뷰해보려고 한다. [1. 직사각형 별찍기] 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해

오늘도 마찬가지로 진행 중인 프로젝트가 막바지에 접어들어 공부보단 자잘한 버그 픽스 위주로 진행해서 쉬면서 풀었던 프로그래머스 문제를 리뷰해보려고 한다.<문제>이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.별(\*) 문자를 이용해 가로의 길이가 n

내일배움캠프의 첫 Unity 팀 프로젝트를 어찌저찌 끝내고나서 다시 되돌아보니 많은 부분에서 미숙한 모습이 보여서, 다음에 팀 프로젝트를 진행할 때 어떤 부분을 보완하면 좋을 지 정리하려고 한다.\`정말 간단한 부분이라도 놓치지 않기 위해 팀 프로젝트를 진행하며 잘 안

게임 세계의 배경을 둘러싸는 환경 매핑 기술이다. 큐브 맵(Cube Map)과 구체형 스카이박스(Sphere Map) 등이 있다.스카이 박스는 6개의 텍스처로 구성된 큐브 맵 또는 하나의 구체로 텍스처가 매핑된 구체형 스카이박스로 구성된다.Unity에서는 씬의 배경으로

이전에도 인터페이스에 대해 정리한 적이 있지만 인터페이스는 매우 중요하므로 복습 겸 다시한번 정리해보려고 한다.인터페이스는 클래스의 다중 상속이 허용되지 않는 C추상 클래스보다 높은 수준의 추상 멤버로만 구성된 클래스를 뜻한다. 그래서 인터페이스는 모든 멤버들이 abs

진행 중인 프로젝트에서 플레이어를 앞으로 이동하며 점프한 후 벽에 부딪혀도 계속 이동하면 벽에 붙는 현상을 발견했다. 오늘은 이 현상을 고쳐보자.현재 아래와 같이 플레이어가 점프해서 벽에 충돌하면 벽에 붙게 된다. 정확한 이유는 모르지만, 아마도 Collider 끼리

오늘은 개인 프로젝트 과제에서 도전 기능에 속해 있는 움직이는 플랫폼 구현 을 해보려고한다. [움직이는 발판] 움직이는 발판의 핵심은 "지속적으로 반복해서 좌우로 이동한다.", "발판위에 플레이어가 올라갔을 때 발판의 이동을 자연스럽게 따라가도록 한다." 이렇게 2

[배경] Unity 2022.3.17f버전을 사용하여 Adventure Game을 개발하던 도중 플레이어가 상호작용하면 특정 방향으로 플레이어를 날려주는 캐릭터 발사기를 구현하려는 상황. [발단] 발사기 오브젝트와 상호작용하면 발사기 가운데로 플레이어를 위치시키고

Unity로 게임을 개발할 때 유지보수를 신경쓰지 않고 개발하면 데이터와 로직이 엉켜 스파게티 코드가 되기 십상이다. 그래서 어떻게 하면 유지보수에 용이할까 생각하다가 MVC패턴에 대해 알게되어 정리해보려 한다.MVC 패턴은 Model, View, Controller

오늘은 [유니티 Tips] 알고 있으면 쓸데 있는 IL2CPP, Mono, AOT, JIT 개념 파헤치기 라는 영상을 보고 해당 개념들을 정래 해보려고 한다 >링크 : https://youtu.be/-9X965jXrn8?si=Ykj-tCqfORGZz5Se

오늘은 프로젝트를 진행하며 인벤토리를 구현하는 데, 인벤토리에 있는 아이템을 자세히 볼 수 있는 기능을 만드려다 생긴 간단한 문제에 대해 다뤄 보려고 한다.UI는 기본적으로 2D이다. 그렇기 때문에 UI에 따로 3D 오브젝트를 띄울 수 있는 기능이 존재하지 않는다. 그

게임 개발을 할 때 수학을 엄청 잘해야 하는 것은 아니라고 생각하지만 그래도 이 정도는 알아야 한다 싶은 기초 게임 수학에 대해 정리해 보려고 한다.크기와 방향을 동시에 가지는 수학적 개념.게임에서는 오브젝트의 위치, 방향, 속도 등을 나타낼 때 벡터를 사용한다.Uni

[5. 벡터 외적 (Cross Product)] 두 벡터 사이의 직각(수직) 방향 벡터를 계산하는 연산. 두 벡터가 평면을 이루면, 외적은 그 평면에 수직인 새로운 벡터를 생성한다. 수학적으로, 두 벡터 A와 B의 외적은 다음과 같이 계산된다. 외적의 특징 외

Google Spread Sheet의 데이터를 Unity로 가져올 수 있다면, Unity를 다룰 수 없는 기획자가 데이터를 생성할 수 있기 때문에 협업에 있어서 매우 중요한 요소이다. 오늘은 Google Spread Sheet에서 작성한 데이터를 Unity에서 사용할

Unity에서 게임을 개발할 때, 처음에 구조를 잘 설계하면 유지보수성과 확장성이 크게 향상된다. 반대로 처음에 구조설계를 안하고 대충 개발하면 프로젝트가 진행될 수록 코드가 복잡해져 관리가 어려워지면서 협업할 때 효율성이 매우 떨어질 수 있다. 그래서 오늘은 여러가지

Unity심화 강의는 2D와 3D로 나뉘어 있는데 오늘은 2D부분을 정리해보려고 한다.Unity에서 제공하는 카메라 제어 시스템으로, 코딩 없이 카메라 이동, 전환, 흔들림, 추적이 가능하다. (2D뿐만아니라 3D에서도 쓰인다.)<주요기능>Virtual Camer

오늘은 Unity 3D 심화 강의를 통해 유한 상태 머신이라는 것을 알게 되었는데, 잘 사용하면 이후 프로젝트에서 유용하게 쓸 수 있을 것 같아서 정리해보려고 한다.FSM은 Finite-state machine의 약자로 유한한 개수의 상태를 가지며, 각 상태와 상태 간

오늘은 무한 스크롤 인벤토리를 구현하는 법에 대해 글을 작성하려다 아직 완벽하게 구현하지 못해서 쉬는 시간에 풀었던 프로그래머스 문제들을 리뷰해보려고 한다. [1. 올바른 괄호] 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로

오늘은 커스텀 에디터가 무엇인지 알아보고 직접 사용해보려고 한다.Unity의 에디터의 UI를 확장하거나 수정해서 사용자 정의 인터페이스를 만들 수 있는 기능이다. 예를 들어 특정 기능을 수행하는 버튼을 만들어서 개발자가 쉽게 작업하도록 도움을 줄 수 있다.커스텀 에디터

지금까지 오브젝트 풀링에 대해서 강의에서 접한 적도 있고 TIL을 작성하면서 언급한 적도 있지만, 제대로 사용해본 적은 없기 때문에 이번 기회에 오브젝트 풀링을 활용해보려고 한다.오브젝트를 동적으로 생성 및 파괴를 하는 것이 아니라 미리 생성해두고 필요할 때만 꺼내서

오늘은 팀프로젝트 시작 날이라 대부분 시간을 회의를 진행했다. 그렇게 Quest 파트를 맡게 되었고, 시간이 부족해서 Quest의 기본 틀만 잡아놨다.기본적으로 Quest는 게임에 하나만 존재하는 것이 아니라 여러 종류의 Quest가 존재한다. 그래서 공통적으로 Que

오늘은 어제 만들었던 QuestBase를 토대로 여러가지 퀘스트를 만들고, QuestManager에서 모든 퀘스트들을 관리하도록 구현해볼 예정이다.어제까진 QuestBase에서 퀘스트의 모든 처리를 담당했는데, 이젠 QuestManager에서 모든 퀘스트들을 저장해두고

이전에 팀 스크럼에서 Quest 데이터 테이블을 구글 시트로 만들고, 구글 시트에서 데이터를 입력하면 Unity로 가져와서 별도의 Scene수정 없이 QuestManager에서 가져온 데이터를 토대로 Scene에 퀘스트를 자동으로 생성해 줬으면 좋겠다는 이야기가 나와서

오늘은 팀프로젝트에서 필요한 수류탄을 만들어 볼 예정이다.먼저 시작하기 앞서 수류탄이 어떻게 동작하는 지 생각해 볼 필요가 있다.던지면 일정 시간 이후에 터진다.터질 때 폭발 이펙트가 발생한다.폭발범위 안에 있는 몬스터들에게 데미지를 입힌다.폭발범위 안에 있더라도 몬스

오늘은 MonoSingleton이라는 클래스를 만들어서 상속받은 클래스를 Singleton패턴으로 관리하면서, MonoBehavior를 상속받도록 만들 예정이다.유니티로 게임개발을 할 때 Singleton패턴으로 관리하는 매니저들이 정말 많다. 대부분의 매니저들은 컴포

오늘은 프로젝트에 사용할 UI를 만드려고 하는데, UI에 애니메이션을 넣기 위해 DOTween을 사용하려고 한다. DOTween이 무엇인지는 아래 링크를 통해 확인하자. >링크 : DOTween이란? [Sequence란?] Sequence는 여러개의 Tween을

현재 진행하고 있는 프로젝트에선 RTS 방식의 카메라를 사용하고 있다. 이 때 맵 전체를 보여줄 미니맵이 필요해서 오늘 제작해보려고 한다.내가 처음에 생각한 방식은 현재 맵과 똑같이 생긴 맵을 작게 만들어서 좌표값을 매핑시키는 것 이었다. 그런데 알아보니까 Camera

UI작업을 하면서 어떤 값이 바뀌면 UI에 바로 적용되도록 구현하고 싶어서 알아보던 중 "반응형 프로퍼티"의 개념을 알게되어서 정리해보려고 한다.반응형 프로퍼티는 간단하게 설명하면 값이 바뀌면 자동으로 등록된 이벤트가 실행되는 구조이다. 데이터가 UI같은 다른 로직에

오늘은 이전에 챌린지반에서 강의를 진행했었던 예상 면접 질문들을 정리해 보려고 한다. [Class와 Struct의 차이] Class와 Struct는 사용자 데이터 타입을 정의할 때 사용된다. 일반적으로 Class는 객체를 정의할 때 사용하고, Struct는 데이터의

이번주에 모의면접 일정이 잡혀 있어서 오늘은 모의 면접 예상 질문들을 모아 정리 해보려고 한다.1\. 객체란 무엇인가요? 클래스와 어떤 연관이 있나요?객체란 속성과 행동을 함께 가지는 독립적인 단위입니다. 속성은 객체가 가지는 상태로 데이터를 뜻하며, 행동은 객체가 할