no image
[내일배움캠프] Unity 게임 개발 숙련 - 오브젝트 풀
오브젝트 풀링이란 유니티 개발에 있어서 최적화하는 기법중 하나인데 오브젝트들을 한곳에 저장해두고 필요할때마다 불러서 사용하는것을 의미한다. 프리팹형식으로 오브젝트들을 생성과 파괴를 계속 하는것 보다 메모리를 할당하는 양이 줄어들기 때문에 CPU의 부담이 많이 줄어든다. 유니티 내부에 재사용되지 않는 객체들을 삭제해주는 '가비지 컬렉터'가 있는데 이것 역시 메모리를 할당하기 때문에 발생률을 줄여주는게 CPU의 부담이 덜어진다고 볼 수 있다. 하지만 오브젝트 풀링 방식 역시 메모리를 시작할 때 한에 할당 해주기 때문에 시작시 로딩이 길어진다는 단점이 있을 수 있지만, 게임 중간 메모리를 할당하여 프레임 드랍이되는 방식을 무시 할순 없기 때문에 오브젝트 풀링 방식이 선호된다고 한다. 물론 미리 생성해두는 오브..
2023.12.08
[내일배움캠프] Unity 게임 개발 입문 - 마무리 (깃허브 리드미 전문)
https://github.com/gugmin/Cleaner # Cleaner 벽돌깨기 팀 프로젝트 ## 팀원: 김국민(팀장), 임종운, 조형승, 송하겸, 이승철 > Unity로 개발한 벽돌깨기 게임 프로젝트 입니다. > 5인 팀 프로젝트이며, 고전게임를 현대식으로 재해석 및 개발한 내용입니다. > 소통과 협업을 위주로 개발하였고, 핵심 내용은 '충돌' 입니다. > 개발 기간은 5일입니다. > 구현된 내용은 다음과 같습니다. ## 주요 기능 * 누적 공부시간 * 배경 음악 * 보스 라운드, 보스 패턴 * 아이템 장착 * 시간별 보너스 스코어 * 게임 시작 화면 * 옵션 플레이어 데이터 삭제 기능 * 볼륨 조절 * 난이도 별 게임 시작 * 난이도 별 게임 해금 기능(점심, 저녁) * 상점이동 * 게임 진행..
2023.12.07
no image
[내일배움캠프] Unity 게임 개발 입문 - 깃 허브 메인 폭파사건
아침부터 회의를 진행하고 깃허브데스크탑을 이용해서 merge를 하고 팀원들의 작업내용을 하나로 합쳤다. 기능구현을 8~90% 해서 할 일이 없어진 나는 UI작업을 시작했다. 컨셉에 맞고 깔끔한 이미지를 서치하고 고르는 일만 하는데도 오랜 시간이 지나가 버렸다. 팀원들과 이미지를 공유해서 컨펌을 다같이 하고 선택된 이미지로 UI에 적용시켰다. 그럼에도 뭔가 자꾸 부족하고 보완하고 싶은 부분이 많아 보였다. 근데 또 마감은 지켜야하니까 단념하고 포기했다. - 폭파사건의 전말 - 오늘 작업도 마무리 되어가고 하루도 마무리 되어가는 시점에 슬슬 main에 merge해야 되지 않나? 라는 생각이 스쳤고, 메인을 건들이기 시작했다. 깃허브 메인에서 여러가지 실험을 하다가 깃이그노어를 지워버려서 change부분에 2..
2023.12.07
[내일배움캠프] Unity 게임 개발 입문 - 버튼눌러서 데이터 불러오기(저장)
오늘 데이터 저장에 도전해보려고 PlayerPrefs대해 알아 봤다. PlayerPrefs는 int, float, string 값을 데이터에 저장시킬 수 있는 유니티 엔진 클래스인데 사용방법이 아주 간단해서 이번에 사용하기로 해봤다. 먼저 저장하고 싶은 값이 int형 이라면 PlayerPrefs.SetInt(key, value); 로 저장하고 싶은 값을 저장하고 PlayerPrefs.HasKey(key);로 데이터가 저장되어있는지 확인한 후 PlayerPrefs.GetInt(key, value);로 불러서 사용할 수 있다. int 여서 Get,Set 뒤에 Int가 붙는거지 다른 값형을 사용하고 싶으면 Float, String를 뒤에 붙혀 사용하면 된다. 데이터 저장하는 거 까지는 간단한데 이제 어떤 행동..
2023.12.05
no image
[내일배움캠프] Unity 게임 개발 입문 - 아이템 만들기
오늘은 팀 프로젝트에서 아이템을 만들었다. 이미지도 찾고 만들고 수정도 많이 했다. 그리고 저번주 부터 월, 금 오후4시에 스탠다드반 교육을 진행하는데 동기중 어떤분이 정리해준 내용을 가져와봤다. 참조타입 - 초록색 / 클래스 / 스택은 주소만 저장하고 힙에 저장 / 동적 할당 클래스 - 데이터와 메소드를 정의하는 일종의 틀 얕은 복사 : 내부의 값이 아닌 참조만 복사함으로서 발생하는 문제 값을 복사하는 것이 아닌 같은 곳을 바라보는 문제 string은 불변형식이라 문제가 생기지 않음 값형식은 문제가 없음 나머지는 복사시에 문제가 생길 수 있으니 조심해야한다. 클래스 부모 클래스를 상속받은 자식클래스는 부모클래스에 있는 속성, 메소드 사용 가능 / 변경하여 사용도 가능 실제로 animal 클래스로 객체가..
2023.12.04
no image
[C#] 콜라츠 추측 (수정 완)
문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요. 제한 사항 입력..
2023.12.04
no image
[C#] 두 정수 사이의 합
문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 입출력 예 a b return 3 5 12 3 3 3 5 3 12 기본 제공 코드 public class Solution { public long solution(int a, int b) { long answer = 0; return answer; } } if 문 안에 for 문 사용해서 1씩 증가시킨 ..
2023.12.01
no image
[내일배움캠프] Unity 게임 개발 입문 - 팀프로젝트 발제
오늘 오전 9시 팀프로젝트가 공개되었다. 이번에는 특이하게도 3가지의 게임중 1가지를 선택해서 만드는 과제였다. 똥 피하기, 닷지, 벽돌 깨기 이렇게 3가지가 주어졌는데 이번 과제의 핵심은 '충돌' 이라고 하니 바로 이해가 됬다. 발제가 끝나고 팀과의 회의를 시작했는데 생각보다 쉽고 빠르게 게임을 선택하게 되었다. 바로 벽돌 깨기 인데 이유는 우리 조이름이 욕조 이기 때문이다.(18조라 욕조인건 안비밀) 욕조에서 물이 나와서 바이러스(벽돌)?를 제거하는 느낌으로 하면 좋을 거 같다는 팀원의 말에 바로 혹해서 다같이 개발에 들어갔다. 내가 맡은 파트는 게임매니저 관련사항인데 게임의 진행에 관련된 모든 부분을 맡아서 하는 느낌이라 좀 어렵다고 생각했는지 다들 선택하지않고 남겨두어서 내가 하기로 했다. 근데 ..
2023.11.30
no image
[C#] 하샤드 수
문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 x return 10 true 12 true 11 false 13 false 입출력 예 설명 입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 입출력 예 #2 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 입출력 예 #3 11의 모든 자릿수의 합은 ..
2023.11.30