금일 공부한 것
금일 한 것 [스파르타코딩클럽] 게임개발 종합반 - 2주차->풍선을 지켜라 [스파르타코딩클럽] 게임개발 종합반 - 3주차->고양이 밥주기 게임의 3목차(밥 쏘기)까지 제작 금일 배운 것 풍선을 지켜라 이미지를 활용하지 않고 오브젝트만 활용해 애니메이션 만드는 방법(시간에 따라 색 변화) Animations폴더 안에 애니메이션을 만들고 애니메이션을 적용할 ...
금일 한 것 [스파르타코딩클럽] 게임개발 종합반 - 3주차 금일 배운 것 1.HP구현 HP바를 구현하기 위해 칸을 표시할 back과 남은 피를 표시할 front를 만든다 Hp의 줄어듬을 표현하기 위해 front의 앵커(Anchors)의 피벗(Privot)을 0(기본값 0.5) 으로 수정 (이유: 0.5일때는 중심을 기준으로 크기가 변경되지만 0으로 수정...
금일 한 것 [스파르타코딩클럽] 게임개발 종합반 - 4주차-르탄이 카드 뒤집기 게임! 금일 배운 것 1. Unity (1). 카메라 사이즈 대신 이미지 사이즈 조절하기 ![](https://velog.velcdn.com/images/kimhitori/
금일 한 것 [스파르타코딩클럽] 게임개발 종합반 - 5주차 금일 배운 것 1. 스플래시 이미지 만들기 (1)스플레시 이미지 설정하는 법 -Edit → Project settings → Player → Splash Image로 접근하기 무료 버전에는 Unity로고가 뜨는데 이때 설정하는 배경 및 로고색 등의 설정 → Splash Style : 배경 / 로...
금일 한 것 제대로 파는 Git & GitHub 강좌 금일 배운 것 1.Git (1).Git이란 git은 프로젝트의 시간과 차원을 자유롭게 넘나들수 있도록 해준다. 시간 - 프로젝트의 버전을 과거로 되돌리거나 특정 내역을 취소할수있다. 차원 - 프로젝트의 여러 모드를
금일 한 것 제대로 파는 Git & GitHub - by 얄코 3-2 ~ 4-4까지 금일 배운 것 3. 차원 넘나들기 (1). branch 합치기 ① merger로 합치기 주가 될 브랜치에서 git merger를 실행 :wq으로 자동입력된 커밋 메시지 저장하여 마무리 💡 merge는 reset으로 되돌리기 가능 merge도 하나의 커밋 merge하기...
제대로 파는 Git & GitHub - by 얄코 4-5 ~ 7-5 4.GitHub 사용하기 5. 원격의 브랜치 다루기 (1). 로컬에서 브랜치 만들어 원격에 push해보기 새로운 브랜치를 만들고 push해보기 어디에 업로드 할지 몰라 오류발생 브랜치 목록 살펴보기 - 이렇게 입력시 로컬에 있는 브랜치만 표시 - 이렇게 입력시 오리진에 있는 브랜치도...
제대로 파는 Git & GitHub - by 얄코 8-1 ~ 10-5 8. 취소와 되돌리기 보다 깊이 알기 1. 관리되지 않는 파일들 삭제하기 git clean Git에서 추적하지 않는 파일들 삭제(Git에서 관리되지 않는 파일 삭제) |옵션|설명| |---|---| |-n|삭제될 파일들 보여주기| |-i|인터렉티브 모드 시작| |-d|폴더 포함| |-f...
금일 배운 것 제대로 파는 Git & GitHub - by 얄코 11 ~ 15(完)까지 11. 분석하고 디버깅 하기 1. log 더 자세히 알아보기 옵션들을 활용한 다양한 사용법 각 커밋마다의 변경사항 함께 보기 최근 n개 커밋만 보기 통계와 함께 보기 더 간략히: --shortstat 한 줄로 보기 --pretty=oneline --abbrev-...
레트로의 유니티 게임 프로그래밍 에센스 : C#으로 배우는 입문부터 4가지 게임 5장 게임 오브젝트 제어하기 개요 클래스와 오브젝트의 개념을 이해합니다. C# 클래스로 원하는 사물을 정의합니다. 오브젝트를 생성하는 방법을 배웁니다. 참조 변수를 사용하여 유니티의 컴포넌트를 조작합니다. 5.1 클래스와 오브젝트 객체지향 : 사람이 현실 세상을 ...
레트로의 유니티 게임 프로그래밍 에센스 : C#으로 배우는 입문부터 4가지 게임 5장 게임 오브젝트 제어하기 5.4 변수로 컴포넌트 사용하기 5.4.1 물리 큐브 만들기 GameObject에 Rigidbody를 추가하여 중력과 물리적인 힘에 영향받게 함 Rigidbody 타입의 변수 myRigidbody를 선언 myrigidbody의 AddForce() ...
레트로의 유니티 게임 프로그래밍 에센스 : C#으로 배우는 입문부터 4가지 게임 6.8 입력 매니저 Input.GetAxis() 메서드로 Input.GetKey() 메서드를 대체했습니다. 여기서 다음과 같은 의문이 들 수 있습니다. GetAxis() 메서드에 입력한 Horizontal 축과 Vertical 축은 무엇이며 왜 사용하는가? GetAxis...
레트로의 유니티 게임 프로그래밍 에센스 : C#으로 배우는 입문부터 4가지 게임 트랜스폼의 LookAt() 메서드는 입력으로 다른 게임 오브젝트의 트랜스폼을 받는다. LookAt() 메서드는 입력받는 트랜스폼의 게임 오브젝트를 바라보도록 자신의 트랜스폼 회전을 변경한다. 8장 닷지 게임 매니저와 UI, 최종 완성 8.2 바닥 회전 8.2.1 Rotato...
[230807] Git 특강 1. 개발자는 Git과 Github을 도대체 왜 사용하는가? Git이란? 버전 관리 도구!! GitHub이란? 온라인 저장소이자 Open Code의 성지 내 코드를 온라인에 백업하고 팀원들과 협업할 때 코드를 손쉽게 공유할 수 있고 같이 작업가능 2. Git 명령어를 익혀봅시다. 알아야할 Git 명령어 리스트 Git 명령어 명...
금일 배운 것 문자열 특정 문자 이후 버리기(자르기) hello, World를 첫번째 h(0)에서 5자리 문자를 사용한다는 뜻입니다. 반대로 str.IndexOf(',')로 6의 값을 얻은 이후 6번부터 끝까지 쓴다는 뜻입니다. Unity 문법 특정 오브젝트 찾기 특정 오브젝트의 변수 변경하기 특정 오브젝트의 이미지 변경하기 다른 Scene에서...
금일 배운 것 어제 해결하지 못한 문제 2023/08/08 TIL의 마지막 부분 openStage2와 openStage3를 추가시 발생하는 오류 해결방법 GameObject에 아무것도 안 들어있어서 발생하는 문제 NULL이라고 뜸 자세히 찾아보니 대소문자 틀림 git 문법 1. git cherry-pick git cherry-pick 커밋해시이란 다른 ...
들어가기 앞서 금일 처음으로 팀원들과 함께 만들 게임을 제출하는 기간이다. 이번주 월요일부터 시작하여 금일 목요일 9시에 제출하였다. 병합할때 코드겹침, UI겹침, 파일겹침등으로 많은 문제가 발생하였지만 순차적으로 해결하니 어찌저찌 되었다. 오늘 배운 것 협업은 매우매우 어렵다. 자신의 코드가 남에게 이해가 안될 것이며 남의 코드도 자신이 이해하기 어렵다는...
들어가기 앞서 어제 작성한 프로젝트를 토대로 PPT를 작성 후 발표하였습니다. 그리고 다른 프로젝트와 우리 프로젝트를 비교하였습니다. 오늘 배운 것 싱글톤 참조한 사이트 : Song-YunMin 블로그 싱글톤이란? 싱글톤은 전역 변수를 사용하지 않고 객체를 하나만 생성 하도록 함 생성된 객체를 어디에서든 참조할 수 있도록 하는 패턴 생성자가 여러 차제 호출...
들어가기 앞서 금일 한 일 C# 문법 종합반 1 ~ 2주차 [스파르타코딩클럽] C# 문법 종합반 - 1주차 [스파르타코딩클럽] C# 문법 종합반 - 2주차 오늘 배운 것 정적 배열 초기값(default) 값 형식(ex : int, double, char, bool) 정수 : 0으로 초기화 부동 소수점 : 0으로 초기화 논리 값 : false로 초기화 문자 ...
들어가기 앞서 [스파르타코딩클럽] C# 문법 종합반 - 3주차 오늘 배운 것 프로퍼티 get, set 프로퍼티란? 프로퍼티는 클래스 맴버로서, 객체의 필드 값을 읽거나 설정하는데 사용되는 접근자(Accessor)메서드의 조합 객체의 필드에 직접 접근하지 않고, 간접적으로 값을 설정하거나 읽을 수 있도록 합니다. 필드에 대한 접근 제어와 데이터 유효성 검사 ...
들어가기 앞서 강의 [스파르타코딩클럽] C# 문법 종합반 - 4주차 알고리즘 문제시트 ] [몫 구하기 - 사칙연산 ] [최빈값 구하기 - 사칙연산, 배열, 수학 ] [배열 두 배 만들기 - 사칙연산, 조건문, 배열 [ ] [배열 뒤집기](https://school.pro
들어가기 앞서 [스파르타코딩클럽] C# 문법 종합반 - 3주차: 과제 알고리즘 문제시트 문자열 뒤집기, 가위 바위 보, 점의 위치 구하기 오늘 배운 것 Math.Sign(value) Math.Sign(value) 메서드는 value(숫자)를 인자로 받으며 이 값이 양수,
들어가기 앞서 [스파르타코딩클럽] C# 문법 종합반 - 3주차: 과제 [스파르타코딩클럽] C# 문법 종합반 - 5주차 오늘 배운 것 인터페이스(Interface) 인터페이스안에 프로퍼티를 선언 시 접근자 변경이 불가능 하다. 인터페이스를 상속받은 클래스는 인터페이스 안에 선언된 모든 것을 구현해야 되며 접근자를 변경할 수 없다. 프로퍼티 get과 set의 ...
들어가기 앞서 개인 과제 - 스파르타 던전 (Text 게임) 만들기 만든 코드[github] 오늘 배운 것 Console의 다양한 명령어 참조 사이트 : 코딩팩토리 타이틀 변경 배경색상변경 글씨색상변경 비프음 콘솔 배경색 설정 콘솔 배경색 초기화 콘솔 커서위치 설정 콘솔 화면 크기 지정 Tip 이를 응용하면 다양한 짓을 할 수 있다. 아스키코...
들어가기 앞서 오전 예비군 07:00 ~ 13:00 오후 코드카타 13:00 ~ 14:00 4강 강의 숙제 작성하기 오늘 배운 것 프로퍼티 set을 삭제 시 자식 클래스에서도 값 수정 불가.. 인터넷에 올라온 알고리즘 문제는 한계값 또는 일부로 오버플로를 발생하는 값이 있어서 조심해야된다.. github와 Chrome의 확장자프로그램을 잘 이용하면 보다 ...
들어가기 앞서 금일 진행한 일 코드카타 - 알고리즘 문제 풀기 (5문제 풀이 완료) 4강 텍스트 RPG 과제 작성 중 오늘 배운 것 배열 값 위치 찾기 Array.IndexOf() Array.IndexOf(배열, 찾고자 하는 값);을 사용해 int형 값의 위치를 반환 받습니다. 찾은 값의 첫번 째 위치를 반환 합니다. Array.LastIndexOf() A...
들어가기 앞서 새로운 팀원들과 팀 프로젝트 텍스트RPG 제작 - 팀 홈페이지 코드카타 - 알고리즘 문제 풀기 오늘 배운 것 람다식과 LINQ 기초 람다식이란? delegtage 키워드에서 발전된 형태 delegate 키워드 대신 =>(람다 연산자)를 사용한다. 사용 이유 길고 복잡한 코드를 짧고 간단하게 표현할 수 있도록 해준다. 또한 LINQ를 사용하면 ...
out 형식 파라미터 사용하는 방법과 UTF-8 인코딩 하는 방법
프로그래머스 알고리즘 문제 최대공약수와 최소공배수 문제를 풀기 위해 최대 공약수와 최소 공배수가 무엇인지 어떻게 구하는지 알아보자 1. 최대 공약수 최대공약수는 공용되는 약수의 최대를 나타낸다. 예시로 4와 12가 있다고 하면 4의 약수 1,2,4 이다. , 12의 약수 1, 2, 3, 4, 6, 12이다. 이 중 공통되는 값 1, 2, 4중에서 가장 ...
[84. Largest Rectangle in Histogram] - 이 문제 겁나 어렵습니다. 2일 이상 시간이 소모되었지만 문제가 안 풀려서 미쳐버릴 것 같습니다. 풀이 진행 풀이를 진행하는데 필자는 조건이 크게 3가지로 나뉜다고 생각 되었다. 현재 넓이가 구해지는 세로보다 클 때 현재 넓이가 구해지는 세로보다 동일할 때 현재 넓이가 구해지는 세로보다...
최소직사각형 이 문제는 가로 세로의 최소 크기의 직사각형을 만드는 것이다. 첫번째 풀이 이렇게 만들면 첫번 째 문제는 풀 수 있지만 두번 째 케이스에서 통과를 못한다.... 두번 째 케이스 { { 10, 7 }, { 12, 3 }, { 8, 15 }, { 14, 7 }, { 5, 15 } } 이러면 세로의 최대크기가 동일한게 있어서 바꾸면 안되는데 윗코...
문제 사이트 300. Longest Increasing Subsequence 설명 LeetCode는 문제가 영어로 되어있어서 구글 번역기를 돌려봤다. 설명에는 -10^4 ~ 10^4까지의 정수 배열이 주어질때 엄격하게(?) 증가하는 가장 긴 길이를 반환합니다. 라고 적혀있어서 이게 무슨 문제인지 이해를 못해서 구글링을 해보았다. [최장 증가 부분 수열...
int[]을 string[]으로 전환 첫 번째 방법 - .Select().ToArray(); foreach문으로 int에 받을려고 하면 string 형식이여서 받을 수 없다고 뜬다. 제대로 string에 받아 돌리면 타입이 string이라고 뜬다. 두 번째 방법 Array.ConvertAll(); 세 번째 방법 for문 int[] 특정 인덱스부터...
unity 게임 개발 입문 KDT 실무형 Unity 게임개발자 양성과정 금일 배운 것 Input.GetAxis(string name); Input안에 설정되어있는 이름중 name과 동일한것을 들고와 그에 맞는 값을 -1.0f ~ 1.0f까지 반환한다. 자주 사용하는 변수 내용은 Horizontal : 상하(W, S, Up Arrow, Down Arrow, ...
참조 사이트 - 베르의 게임 개발 유튜브 Han님의 블로그 스크립터블 오브젝트란? 유니티내에서 제공하는 데이터 저장소이다. 스크립터블 오브젝트를 사용하면 값의 사본이 생성되는 것을 방지하여 메모리 사용량을 줄일 수 있다. 이를 활용하면 Prefab에 유용하게 사용할 수 있다. prefab을 일반 변수를 사용하면 변수의 byte(자리값) * 객체수 만...
이 글을 쓰는 이유 해당 객체를 바라보기 위해서는 transform.LookAt을 많이 사용한다. 하지만 2D에서 이를 사용하면 Y축까지 회전하여 2D상에서 보이지 않게된다. 즉 객체의 정면(우리가 보는 면)이 해당 오브젝트한태 회전을 하기(Y축이 90도 회전)에 우리한태 보이지 않게 된다. 그래서 2D에서는 어떻게 객체를 바라보게 만드냐? 이거의 답은 ...
1. 유니티 스크립트 에디터 설정 Edit -> Preference -> External Script Editor로 들어가서 자기가 쓰는 스크립트 에디터로 설정한다. 2. Visual Studio의 설정 1. 빨간점 찍기 디버깅 하고자 하는 줄의 번호 옆에 클릭하여 빨간점으로 만들어 준다. 2. 상단의 Unity에 연결을 클릭 스크린샷에 보
1. 오브젝트 풀링이란? Object Pool이란 Object를 필요한 만큼 미리 생성, 보관해 있다가 필요시 꺼내서 사용, 파괴하지 않고 사용한 오브젝트를 맨 뒤에 넣고 재활용 하는 것이다. 2. 오브젝트 풀링이 필요한 이유 게임에서 오브젝트를 생성과 파괴를 할 때 많은 리소스를 사용됩니다. 하지만 소량일 때에는 컴퓨터 성능에 문제가 되지 않지만 대량이...
개발을 하다보면 필연적으로 데이터와 로직이 결합된 상태로 개발하게 된다. 규모가 커지면 커질수록 점점 코드는 복잡해지고, 데이터와 로직이 뒤섞여 더 이상 유지보수가 힘든 상황이 이르게 된다. 따라서 데이터(Model)와 로직(Controller)을 분리해주는 패턴으로부터 개발을 시작하는 게 좋다. 1. MVC패턴 MVC패턴이란 Model, View, Co...
1. OnTrigger이란? 충돌한 2개의 물체중 한개가 rigidbody를 갖고있고 충돌한 물체 모두가 collider를 갖고있며 2개중 하나가 isTrigger = true일 때 사용할 수 있다. 2. 종류 |종류|설명| |---|---| |OnTriggerEnter|두 물체가 부딪친 순간 호출| |OnTriggerStay|물체가 충돌 중인 경우 계속 ...
1. 절대 좌표, 상대 좌표란? 1) 절대 좌표(= 월드 좌표) Unity 가상 공간의 기준인 좌표(기준이 절대 변하지 않아서 절대 좌표입니다.) 2) 상대 좌표(= 로컬 좌표) 내가 정한 상대가 기준이 좌표(기준이 상대 기준이기 때문에 상대 좌표입니다.) 2.사용법 1) 절대 좌표 사용법 transform.position으로 내가 있는 위치를 절대 좌표...
Invoke란? 부르다, 언급하다 등등이라는 뜻 C#에서는 하나의 Form을 다른 Thread에서 접근하게 될 경우에 기존의 Form과 충돌이 날 수 있다. 이 때 Invoke를 사용하여 실행하려고 하는 메소드의 대리자(delegate)를 실행시키면 됩니다. Unity내에서는 일정 시간이 지난 후에 해당 함수를 실행할 때 많이 사용됩니다. 어떻게 보면 C...
Coroutine이란? 프로그램에서 순서는 일반적으로 불려지는 쪽이 부른는 쪽에 속하는 있는 것이 대부분이지만 어느 쪽도 종속 관계가 아니라 대등한 관계로 서로 호출하는 것이다. 예를 들면, 게임 프로그램에서 각 플레이어 루틴은 서로 코루틴된다. 복수 프로세스 간에서 한정된 형태의 통신을 행하는 프로그램을 순차 제어로 실현한 것으로 불 수도 있다. 컴퓨터인...
직렬화이란? 직렬화(Serialization)는 클래스의 객체를 바이너리화 하는 것을 직렬화라고 합니다. 즉, 클래스 내부에 있는 데이터, 변수의 값들을 byte형식의 데이터로 만드는 것입니다. 이 직렬화는 예전에 사용했었지만 요즘에 객체 데이터를 JSON 형식으로 저장합니다. 그러나 JSON의 경우 pubilc 데이터를 String으로 변환하는 것이라 ...
C#에서 엑셀 파일로 저장하기 위해서는 Microsoft Excel Object Livrary를 참조로 추가해야 합니다. 솔루션 탐색기에서 프로젝트 -> 참조 우클릭 - 참조 추가를 클릭 한 후 Microsoft Excel Object Library를 체크한 후 확인을 클릭합니다. 사용 방법 ReleaseObject(object obj) : 엑셀 객체를...
1. gitignore란? 프로젝트 작업 시 로컬 환경의 정보나 빌드 정보 등 원격 저장소 Git에서 관리 및 저장하면 안되는 파일들을 지정하여 원격 저장소에 저장되지 않도록 관리하는 파일. 정의한 정보들에 해당하는 파일들에 대해여 추적하지 않도록 설정하는 역할을 한다. 1) 사용 이유 처음 프로젝트를 생성하고, 바로 Git에 Push를 할 경우 .ide...
Singleton 필요 이유 클래스 구조를 짜다보면 다른 클래스의 함수나 메서드를 사용해야 할 수도 있고, 전체 클래스들이 공유하는 전역변수가 필요할 수도 있다. 규모가 작은 게임에서는 public 변수를 만듬 다음 유니티 Inspector에서 드래그 앤 드롭으로 의존관계를 만들수도 있지만 게임이 점점 복잡해진다면 다른 클래스를 참조하는 변수가 너무 많이 ...
불러오기 스크립트에서 이미지나 객체를 불러오는 방법은 여러가지가 있지만 가장 적절한 방법이 Resources를 사용한다. Asset안에 있는 Resources폴더를 참조하여 작업을 수행할 수 있습니다. 하나만 지정해서 불러오기 모두 불러오기 생성하기 해설 : Resources/Prefabs/UI안에 있는 GameObject 타입의 객체들을 gameo...
State Pattern(상태 패턴) State Pattern(상태 패턴)은 객체가 특정 상태에 따라 행위를 달리하는 상황에서, 상태를 조건문으로 검사해서 행위를 달리하는 것이 아닌, 상태를 객체화 하여 상태가 행동을 할 수 있도록 위임하는 패턴을 말한다. 객체 지향 프로그래밍에서의 클래스는 꼭 사물 / 생물만을 표현하는 고체 형태의 데이터만 표현 할 수...
Unity를 사용 및 배워보면 데이터를 저장 및 불러오기에 대한 고민이 깊어진다. 유저가 플레이했던 정보를 어떻게 저장할지.., 아이템의 정보는 어떻게 처리할지..., 대화창의 대화는 어떻게 처리할지... 등등 그래서 Unity의 데이터 저장하는 방법중 excel로 불러오는 방법을 적어보고자 한다. Unity로 엑셀파일을 읽어올 수 있어? 답은 No이면서...
식 트리(Expression Tree) System.Linq.Expressions c#에서는 코드 안에서 동적으로 무명 함수를 만들 자료 구조에서 말하는 이진 트리 자료 구조라고 생각하면 된다. 각 노드는 부모 - 자식 관계로 연결된다. 뿌리가 되는 노드를 루트(Root)노드라고 하며 루트로 부터 뻗어 나온 노드 중 가장 끝에 있는 노드를 잎(Leaf)노...
람다 함수 람다 함수이란 마치 오브젝트를 탄생시키듯이 코드 도중에 이름이 없는 함수를 만들고 마치 변수에 값을 넣어 주듯이 여기저기에 줄 수 있다. 형식 델리게이트 이렇게 작성하고 Unity에서 스페이스바를 누르면 Mail sent to: anso 와 Money sent to: anso가 콘솔창에 실행된다. 하지만 이코드를 람다 함수로 바꾸면 어떻게...
이 글을 작성 이유 이는 면접에서 자주 물어보는 질문이며 a답변이 아닌 b 답변이 나오는 경우가 많기에 작성하게 되었습니다. a 답변 int는 정수형 값 타입 변수이고 float는 실수형 값 타입 변수이기에 정수만을 표현하고자 하면 int, 실수도 표현 하고자 하면 float를 사용하면 됩니다. 이는 사용자가 코드에서 사용하는 단위에 맞춰서 사용한다는 의...
Drag and Drop을 구현하기 해당 기능이 들어있는 인터페이스를 상속받고 오버라이딩해야 합니다. 인터페이스와 기능 인터페이스 이름 |기능 및 나오는 멤버 함수 :---:|:---: IPointerEnterHandler|마우스가 해당 오브젝트에게 닿아 있을 때 발생하는 이벤트멤버 함수 : OnPointerEnter IPointerExitHandler|...
컴파일이란? 컴파일의 필요한 이유 컴퓨터는 모든 명령 CPU가 처리하고 CPU는 모든 명령을 0과 1로 이해하고 실행한다. 'A'라는 알파벳을 입력할 때 우리는 'A'라고 해석하지만 컴퓨터는 00110010와 같은 이진코드로 해석하고 명령을 처리한다는 것이다. 즉, 우리의 언어는 컴퓨터가 이해하지 못하므로 컴퓨터가 이해할 수 있는 통역사가 필요하다. 여기서...
Namespace(네임스페이스)란? 많은 클래스들을 충돌없이 보다 편리하게 관리/사용하기 위해 .NET에서 네임스페이스를 사용한다. C#에서도 이러한 개념을 적용하여 클래스들이 대개 네임스페이스 안에서 정의된다. 비록 클래스가 네임스페이스 없어도 정의 될 수는 있지만, 거의 모든 경우 네임스페이스를 정의하는 것이 일반적이다. 성격이나 하는 기능에 따라 클...
스크롤뷰 배치 Unity UI에는 스크롤뷰(ScrollView)가 있습니다. 스크롤 뷰 설정 콘텐츠에는 Content를 넣어주면 됩니다. 콘텐츠는 내가 스크롤 뷰에
Array vs List >비교 리스트는List는 요소가 추가되고 제거될 때 자동으로 크기를 조정할 수 있는 일반 컬렉션인 반면, 배열은 동일한 요소를 보유할 수 있는 고정 크기 순차 컬렉션입니다. Array 배열은 길이가 고정된 동일한 데이터 유형의 엄격한 자료형 컬렉션이다. 즉, 한번 생성되면 크기를 변공할 수 없습니다. 배열 요소는 0부터 시작해서 ...
Observer Pattern 옵저버 패턴이란? 옵저버 패턴(observer Pattern)은 옵저버(관찰자)들이 관찰하고 있는 대상이 상태가 변화가 있을 때마다 대상자는 직접 목록의 간 관찰자들에게 통지하고, 관찰자들은 알림을 받아 조치를 취하는 행동패턴이다. 옵저버 패턴은 여타 다른 디자인 패턴과 다르게 일대다(one-to-many)의존성을 가지는데,...
전략 패턴 전략 패턴은 실행(런타임) 중에 알고리즘 전략을 선택하여 객체 동작을 실시간으로 바뀌도록 할 수 있게 하는 행위 디자인 패턴 이다. 여기서 '전략'이란 일종의 알고리즘이 될 수 도 있으며, 기능이나 동작이 될 수도 있는 특정한 목표를 수행하기 위한 행동 계획을 말한다. 즉, 어떤 일을 수행하는 알고리즘이 여러가지 일때, 동작들을 미리 전략으로 정...
ObjectPool이란? 오브젝트 풀이란 반복되어 사용되는 객체를 생성 및 파괴하여 활용하지 않고 재사용 할 수 있도록 만드는 기능입니다. 예전에는 ObjectPool을 따로 만들어야 되었지만 2021년도 이후 버전부터는 Unity 내장되어 있어서 손쉽게 사용할 수 있게 되었습니다. 사용 방법 사용되는 객체 스크립트 using UnityEngine.po...
객체 지향 프로그래밍이란? 객체 지향 프로그래밍(Object - Oriented Programming)OOP는 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 객체란? 객체는 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며 값을 저장 할...
객체 지향 프로그래밍이란? 객체 지향 프로그래밍(Object - Oriented Programming)OOP는 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 객체란? 객체는 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며 값을 저장 할...
Unity의 Update는 다양한 기능을 수행하며 다양한 종류가 있습니다. Update란? 정기 업데이트 이벤트로 매 프레임마다 호출되며 게임의 로직, 상호작용, 애니메이션, 카메라 포지션의 트랙을 유지할 때 사용합니다. 일반적인 패턴은 Update함수에 대부분의 작업을 수행할 수 있습니다. 종류 및 기능 1) Update() 스크립트가 활성화(enab...
이 글을 작성하는 이유 필자가 상점 및 거래관련된 기능을 구현하면서 돈을 외부에서 수정할 수 없도록 구현하면서 MVC패턴을 최대한 구현하고자 생각하고 노력했던 결과를 잊지않고자 적을려고 합니다. 대리자란? 대리자는 그 말 그대로 대리로 무엇을 해주는 것을 의미하는데 필드나 지역변수처럼 메서드도 선언하여 호출할 수 있는것을 말합니다. 대리자의 종류 1. ...
Garbage Collector 객체지향 프로그래밍 언어는 메모리를 동적으로 할당한다는 개념이 존재하고, 런타임에 동적으로 할당된 메모리를 해제해줄 필요도 있다. C++는 Modern C++이 되어서야 스마트 포인터라는 기술의 등장으로 이를 비교적 나은 형태로 처리할 수 있게 되었지만, 아직 '자동'으로 해준다고 보기는 어렵다. C#으로 작성한 코드는 ....
인스펙터란? Unity 에디터에서 프로젝트는 스크립트, 사운드, 메시 또는 광원 같은 기타 그래픽 요소를 포함하는 여러 게임 오브젝트로 구성됩니다. 인스펙터 창에는 현재 선택한 게임 오브젝트에 대한 상세 정보(연결된 모든 컴포넌트와 그 프로퍼티 등)가 표시되며 인스펙터 창을 사용하여 씬에 있는 게임 오브젝트의 기능을 수정할 수 있습니다. 이렇게 객체에 들...
시네머신이란? 시네머신은 영화 촬영을 하는 것처럼 씬을 촬영하여 게임 화면상에 비추어주는 유니티 패키지라고 생각하면 됩니다. 사용하기 위해선 패키지 매니저에서 시네머신을 다운 받아야 한다. 컷신을 연출할 때 자주 사용됩니다. 시네머신 소개 & 튜토리얼 시네머신 추가하기 에셋 스토어 혹은 패키지 매니저에서 Cinemachine이라고 검색하면 찾을 수 있다. ...
시네머신이란? 시네머신은 영화 촬영을 하는 것처럼 씬을 촬영하여 게임 화면상에 비추어주는 유니티 패키지라고 생각하면 됩니다. 사용하기 위해선 패키지 매니저에서 시네머신을 다운 받아야 한다. 컷신을 연출할 때 자주 사용됩니다. 시네머신 소개 & 튜토리얼 시네머신 추가하기 에셋 스토어 혹은 패키지 매니저에서 Cinemachine이라고 검색하면 찾을 수 있다. ...
Content Size Fitter이란 UI등에서 자주 사용되는 컴포넌트로 이미지 객체의 크기를 자동으로 조절해주는 컴포넌트입니다. Horizontal Fit : 가로의 크기를 조절 Vertical Fit : 세로의 크기를 조절 토크 옵션 Unconstrained : UI의 크기를 콘텐츠에 맞추지 않는 옵션으로 UI의 크기를 직접 맞추거나 고정된 크기를...
Animation Event란? 애니메이션이 실행되는 도중에 타이밍에 맞춰서 무언가가 실행되어야 하는 경우가 종종 발생합니다. 예를 들자면 대표적으로 캐릭터가 걷거나 뛸 때 발소리가 나거나 먼지가 일어나야 한다던지 캐릭터가 무기를 휘두를 때 맞는 타이밍에 맞춰서 데미지가 들어가야 한다던지 하는 경우가 있을 수 있다. 이러한 문제를 해결하는 하드한 방법으로는...
Scene이란 경찰, 범죄 등과 관련된 영화나 드라마를 보게 되면, Crime Scene이라는 노란색 테이프로 현장을 막아놓은 장면들이 나온다. 범죄에 사용된 물건, 사물 등이 존재하는 사건 현장이 씬이다. 씬은 캐릭터, 장애물, 벽, 지면 등의 요소들을 포함한다. 게임 설계에 따라, 게임은 단일 씬으로 구성되거나, 여러 개의 씬으로 구성될 수 있다. 각...
게임 종료 함수 하지만 이렇게 사용하면 에디터에서 메서드가 실행되는지 알수가 없으며, 게임이 종료되지 않는다 그렇기에 아래와 같이 전처리기 지시어(#if, #else, #endif)를 사용해 에디터랑 앱상을 다르게 사용하면 해결이 가능하다. 에디터에서도 종료 가능한 코드
Enemy의 hp 구현하기 Enemy에서는 플레이어가 일정거리 가까이 왔을 때 UI Manager에 자신의 정보를 전달하여 Enemy에게서 UI가 들어갈 위치(Enemy의 위치), 최대 HP, 변화된 HP등을 전달받아서 HPBarUI로서 기능을 수행한다. 구현 코드 HPBarMain.cs BossHPBar.cs EnemyHPBar.cs
내일배움캠프를 하기 전 나의 백그라운드 저는 전자정보통신계열을 나와 C, C++을 배웠으며 기본적인 지식과 프로그래머스 Python LV2까지 풀수있는 실력이 있었습니다. 여러 코딩부트캠프 중에서 내일배움캠프를 선택한 이유 핸드폰과 인터넷 베너에 광고가 많이 떠서 참여하게 되었습니다. 내일배움캠프의 장점 비슷한 실력끼리의 사람들과 많이 만나서 배우고 협...