분류 전체보기 51

내일배움캠프 11일차: 추상 클래스

오늘의 공부 📝오늘은 추상 클래스 개념이 헷갈려 집중적으로 공부하였다. 추상 클래스는 공통적인 기능을 제공하면서도, 특정 기능에 대해서는 자식 클래스가 반드시 구현하도록 강제하는 개념이다. 추상 클래스는 인스턴스화할 수 없고, 상속을 통해서만 사용된다. 또한, 추상 메서드를 통해 자식 클래스에서 해당 메서드를 반드시 구현하게 강제하며, 이를 구현하지 않으면 컴파일 오류가 발생한다. 추상 클래스 (Abstract Class)란?추상 클래스는 공통적인 기능을 제공하면서, 구체적인 동작이 필요한 부분은 자식 클래스에서 구현을 강제하는 개념이다. 추상 클래스 자체는 인스턴스화할 수 없으며, 반드시 상속을 통해 사용이 된다. 추상 메서드를 통해 자식 클래스가 해당 메서드를 반드시 구현하도록 강제할 수 있으며, ..

내일배움캠프 2024.09.26

Newtonsoft.Json을 사용한 게임 데이터 저장(내일배움캠프 10일차)

오늘 공부한 내용 📝오늘은 C#을 활용한 TEXT RPG 만들기 과제를 하면서 데이터 저장 방식에 대해 고민하던 중, Newtonsoft.Json을 알게 되어 사용해보았다. 이 라이브러리는 JSON 포맷으로 데이터를 쉽게 직렬화하고, 다시 객체로 역직렬화하는 데 매우 유용했다. JSON을 통해 데이터의 구조를 직관적으로 관리할 수 있었고, 게임 데이터를 저장하고 불러오는 기능을 간단하게 구현할 수 있었다. JSON이란?JSON(JavaScript Object Notation)은 데이터를 텍스트 형식으로 저장하고 교환하는 데 사용되는 경량 데이터 포맷 Javascript의 문법을 따르지만, Javascript가 아니더라도 다수의 프로그래밍 언어에서 라이브러리를 제공 키-값 쌍으로 데이터를 표현하며, 데이..

내일배움캠프 2024.09.25

내일배움캠프내일배움캠프 게임개발 과정 9일차: 실수형 난수 사용

오늘 공부한 내용📝C#을 활용한 TEXT RPG 만들기 과제를 하던 중 실수형 난수를 사용할 일이 생겼다.  하지만 기존에 사용하던 Next() 메서드로는 실수형 난수 값을 얻을 수 없었다. 방법을 찾던 중 NextDouble()을 학습하게 되었다.NextDouble()과 Next()의 차이점Next()는 정수형 값을 반환하며, 범위를 지정할 수 있다. 예를 들어, 최솟값과 최댓값을 설정해서 그 사이의 정수를 생성이 가능하다.반면, NextDouble()은 0.0 이상 1.0 미만의 실수형 값을 반환한다. 0.0 ~ 1.0 범위를 벗어나는 값을 넣어주고 싶다면 별도의 처리가 필요하다.NextDouble에서 최솟값과 최대값 설정 방법기본적으로 NextDouble()은 0.0 이상 1.0 미만의 값을 반환..

내일배움캠프 2024.09.24

내일배움캠프내일배움캠프 게임개발 과정 8일차: Delegate

오늘 공부한 내용📝오늘은 C#에서 delegate라는 개념을 배웠다. 처음에는 왜 이걸 써야 하는지 좀 헷갈렸지만, 직접 코드를 작성해 보면서 그 유용성을 느끼게 되었다. delegate는 메서드를 대신 호출해주는 역할을 한다. 왜 delegate를 사용해야 할까?🤔처음에는 단순히 메서드를 직접 호출하는 것과 뭐가 다른지 의문이 들었다. 하지만 delegate를 사용하면 여러 메서드를 한 번에 호출할 수 있고, 메서드를 매개변수로 전달할 수 있어 코드의 유연성이 높아진다. delegate를 사용하면서 만족스러웠던 부분은 특정 클래스의 메서드 활용의 자유도가 상당히 높아진다는 점이었다. 코드 예시: 몬스터 처치 후 보상 처리몬스터를 처치하면 코인, 경험치, 포인트를 모두 적립해줘야 하는 상황이 있다고 ..

내일배움캠프 2024.09.23

내일배움캠프 게임개발 과정 7일차: Ref 와 Out 키워드

오늘 공부한 내용📝오늘은  ref와 out 키워드에 대해 배웠다. 두 키워드는 모두 참조에 의한 전달을 가능하게 하지만, 각각의 사용 방식과 조건이 다르다. 이를 통해 메서드가 값을 반환하거나, 여러 값을 수정하는 상황에서 유용하게 사용할 수 있다.ref 키워드역할: ref는 변수를 참조로 전달하여, 메서드 내에서 값이 변경되면 원본 변수에도 그 값이 반영되도록 한다.사용 조건: 메서드에 전달하기 전에 변수가 반드시 초기화되어 있어야 한다.사용 예시:int number = 10;ModifyValue(ref number);void ModifyValue(ref int value){ value = 20; // 원본 변수의 값이 20으로 변경됨}out 키워드역할: out은 메서드가 여러 값을 반환할 수..

내일배움캠프 2024.09.20

내일배움캠프 게임개발 과정 6일차: float 데이터형 끼리의 비교

오늘 공부한 내용📝오늘은 float 자료형끼리의 비교에 대해 배웠다.  float은 정확한 값이 아니기 때문에 ==로 비교하면 오류가 발생할 수 있다. 이를 해결하기 위해 "허용 오차(Epsilon)"를 사용하여 두 값의 차이가 매우 작은 경우, 같다고 간주하는 방법을 배웠다.float a = 0.1f + 0.2f;float b = 0.3f;float epsilon = 0.00001f;if (Math.Abs(a - b)  이 코드는 float 값이 부정확하게 저장될 수 있다는 점을 보완해, 좀 더 안정적인 비교를 가능하게 해준다.궁금한 내용 / 부족한 내용 🤔비슷한 원리로 double 자료형끼리도 비교할 때 주의가 필요하다는 것을 알게 되었다.double은 float에 비해 더 높은 정밀도를 제공하지..

내일배움캠프 2024.09.19

내일배움캠프 게임개발 과정 5일차

오늘 공부한 내용📝 개발자로서 가져야 할 사고어려웠던 부분😭좋은 코드 구조에 대해서 아직 감이 잘 안 잡혔다. 예를 들어, 특정 메서드를 어떤 클래스에 선언하고 사용하는 것이 좋은지, 새로운 클래스를 만드는 것이 적절한지, 아니면 기존 클래스에서 사용하는 것이 더 나은지에 대한 고민이 많았다.궁금한 내용 / 부족한 내용🤔게임 프로그래밍 컨벤션 느낀점😺오늘 라이브 세션 강의에서 개발자로서 필수적인 사고 방식에 대해 들었다. 개발하고 싶은 게임의 레퍼런스를 분석하며, 게임의 구성과 기능 우선순위, 변수명 선정 등 게임 개발을 위한 사고 방식에 대해 깊이 있게 배울 수 있었다. 이 지식을 바탕으로, 기존에 강의를 보며 구현했던 프로젝트들을 다시 분석하며 무엇을 개선할 수 있을지 고민한 하루였다. 이제 ..

내일배움캠프 2024.09.13

내일배움캠프 게임개발 과정 4일차 - 카드 뒤집기 게임 보완하기

오늘 공부한 내용📝4주 차 강의를 바탕으로 카드 뒤집기 게임의 도전 기능을 구현해 보았다. 이번 학습은 주로 게임의 몰입도를 높이기 위한 디테일한 개선 작업에 집중했다.특히 유니티 애니메이션, 문제 해결 능력, 그리고 게임 리소스를 어떻게 효율적으로 활용할지에 대해 깊이 있게 탐구했다. 프로그래밍 외적인 부분들에도 많은 시간을 투자한 하루였다.어려웠던 부분😭몰입도를 높이기 위해 여러 기능을 추가했지만, 주변 요소들이 만족스럽지 않았다. 게임의 전체적인 완성도를 높이기 위해서는 코딩 외에도 더 많은 작업이 필요하다는 것을 느꼈다.궁금한 내용 / 부족한 내용🤔좋은 게임 디자인이란?느낀점😺오늘의 학습을 통해 좋은 게임을 만들기 위해서는 프로그래밍 능력 외에도 내가 가지고 있는 도구들을 효과적으로 활용하..

내일배움캠프 2024.09.12

내일배움캠프 게임개발 과정 3일차 - 미니 프로젝트 구현

오늘 공부한 내용📝그동안 강의에서 배웠던 내용들을 복습하기 위해 도형 피하기 미니게임을 만들어 봤다.  구현한 미니 게임 플레이 영상작성 코드  새롭게 공부한 내용특정 오브젝트끼리의  방향구하기 transform.position = new Vector3(x,y,z)만 가지고 도형을 움직였을 때 코드가 매우 복잡해져서 새로운 방법을 찾던 중백터의 정규화(normalized)를 알게 돼 비교적 간단하게 코드를 짤 수 있었다.GameObject.FindWithTag처음에는 도형의 방향을 (0,0) 좌표와 비교해서 방향을 구했는데 단조롭다는 느낌이들어 플레이어를 기준으로 하면 더 괜찮을 것 같아. 방법을 찾던 중 발견했다.  어려웠던 부분😭특정 배경음을 재생할 때 게임이 잠시 멈추는 문제가 있었는데, 이는 ..

내일배움캠프 2024.09.11

내일배움캠프 게임개발 과정 2일차

오늘 새로 배운 내용📝풍선을 지켜라 게임   1. 마우스를 통한 오브젝트 이동   2. PlayerPrefs를 활용한 데이터 저장 및 불러오기   3. Animator 사용  고양이 밥주기 게임  1. 유니티 캔버스의 렌더 모드  2. RectTransform을 통한 UI 요소 배치 및 크기 제어  3. OnTriggerEnter2D와 OnCollisionEnter2D의 차이점 르탄이 카드 뒤집기 게임  1. PixelPerUnit을 통한 스프라이트 크기 조절  2. System.Linq의 OrderBy 메소드를 통한 배열 값 무작위 정렬  3. 유니티 Resources 폴더 사용법 Unity 주변 기능 학습  1. 스플래시 이미지 만들기  2. 사운드 추가 하기   3. DontDestroyOnLoa..

내일배움캠프 2024.09.10