unity 8

내일배움캠프 13일차: 인터페이스

오늘의 공부 📝오늘은 인터페이스 개념에 대해 집중적으로 학습하였다. 인터페이스는 클래스가 특정 동작을 수행할 수 있도록, 해당 동작에 대한 규약을 정의해 주는 추상화 개념이다. 인터페이스는 클래스와 달리 메서드의 구현을 포함하지 않으며, 그저 클래스가 가져야 할 메서드의 시그니처(이름, 매개변수, 반환 타입)만을 정의한다. 인터페이스는 여러 클래스들이 동일한 동작을 하도록 보장해주고, 다형성을 활용한 유연한 설계를 가능하게 해준다.인터페이스는 특정 동작을 정의하고, 그 동작을 여러 클래스가 공통적으로 구현할 수 있도록 한다. 인터페이스 자체는 인스턴스화할 수 없으며, 클래스에서 인터페이스를 구현하여 사용할 수 있다. 한 클래스는 여러 인터페이스를 동시에 구현할 수 있어, 인터페이스를 통한 다중 상속의 ..

내일배움캠프 2024.09.30

내일배움캠프 12일차: const와 readonly

오늘의 공부: const와 readonly 📝오늘은 팀원 분께서 가르쳐주신 const와 readonly 키워드에 대해 추가적으로 공부해보았다. const와 readonly는 모두 값을 변경할 수 없도록 설정하는 키워드이지만, 각각의 사용 시점과 용도가 다르다.const란?const 키워드는 상수(Constant)를 정의할 때 사용됩니다. 상수는 선언과 동시에 값을 지정해야 하며, 이후에 값을 변경할 수 없습니다. const는 컴파일 타임에 결정되는 상수로, 기본형 타입(정수, 실수, 문자열 등)이나 불변적인 값에 주로 사용됩니다. 클래스 내에서 const는 암시적으로 static이므로, 인스턴스가 아닌 클래스 자체와 연관되어 사용됩니다. const 특징반드시 초기화 시 값을 할당해야 함:const 변수..

내일배움캠프 2024.09.27

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

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

내일배움캠프 2024.09.25

내일배움캠프 게임개발 과정 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

내일배움캠프 게임개발 과정 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

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

오늘 배운 내용📝GitHub 사용법더보기git은 무엇인가? github의 사용법과 충돌이 일어나는 상황과 대처법 깃 플로우 전략과 깃 컨벤션(더 좋은 협업을 위한 규칙) 빗물받는 르탄이 게임 만들기더보기transform.position 값을 조정해 게임 오브젝트 이동 기기 성능에 따른 게임 프레임 차이를 관리하는 방법 gameobject끼리의 충돌 ( Rigidbody2d , Collider , OnCollision~2D )스크립트가 부착된 게임오브젝트 내 컴포넌트 가져오기Instantiate를 통한 게임 오브젝트 생성InvokeRepeating를 통한 함수 반복Instance와 싱글톤유니티에서 특정 신을 불러오기 위한 방법어려웠던 부분🥲아직 보충 학습 주차라 github를 실제로 사용해 보지 않아..

내일배움캠프 2024.09.09