본문 바로가기

분류 전체보기

(45)
내일배움캠프 34일차 TIL - 마인드셋과 팀과제 시작 오늘 라이브세션에서 튜터님이 보여주신 '게임 제작 20가지' 이다. 내일부터 본가에 내려가서 컴퓨터없다는 핑계로 쉬려고 했는데 15번에 뜨끔했다. 명절에 내려갈때 태블릿 PC를 가지고 내려가야겠다... 일해야지 일... --------- 오늘부터 팀프로젝트의 시작이다. 우리 조는 타워디펜스를 만들기로 했다. 조원 중 2명이 타워디펜스 장르를 잘 몰라서 그 게임에 대한 이해를 위해 학습하는 시간을 잠시 가진 뒤, 역할분담을 했다. 공정하고 엄정한 방식(돌려돌려 돌림판)으로 결정된 나의 직무는 "게임 맵 생성 및 배치, 게임오버 및 승리 조건"이다. 게임오버에 대해서는 어떤 방식을 채택할지 논의를 거친 끝에 풍타디나 Infinitode2와 같은 게임에서 채택중인 방식으로 하기로 했다 (끝까지 도달하면 생명력..
내일배움캠프 31일차 TIL - 개인과제 해보기 저번주에 강의를 다 들었으니 오늘은 개인과제를 했다. ATM과 스파르타 던전 중 무엇을 할까 하다가 난이도가 낮은 ATM 부터 하고 시간이 남으면 스파르타 던전을 구현해보기로 했다. 이번 개인과제가 UI 만들기가 목적인지라 UI 꾸미기를 신경써보았다. 필수구현 사항이 화면구성과 입출금기능 구현인데 오늘 잠을 얼마 못자서 꽤 집중하지 못했는데도 구현해야할 내용이 많지 않아서 오늘안에 끝낼 수 있었다. 그런데 심대한 버그가 하나 있었으니... 입금-출금을 왔다갔다 하면 1만원 버튼이 2만원을 입출금하는 버튼이 된다.. 내일은 이 문제를 해결한뒤 선택구현사항을 구현해보고 스파르타던전을 구현해보자. 내일도 화이팅..
내일배움캠프 29일차 TIL - 난 3D로 본다 오늘부터 유니티 숙련 단계에 들어갔다. 입문은 2D 였다면, 숙련은 3D다. 공간지각능력도 수학능력도 없는 나에게는 아주 큰 고난이 될 거 같다. 오늘 배운 것 Mathf.min과 max의 차이점 Mathf.min은 괄호안의 변수 중 가장 작은 것을 return 하는 것이고, Mathf.max는 괄호안의 변수 중 가장 큰 것을 return 하는 것이다. 위의 두 메서드들을 보면 Add는 Mathf.Min을, Subtract는 Mathf.Max를 사용한다. Add에서 Mathf.Min을 쓴 이유는 현재 체력 등에서 체력이 회복되었을때 최대체력을 초과하여 회복될 경우 maxValue, 즉 최대체력을 넘지 않게 해주기 위함이다. (curValue + amount가 maxValue보다 크면 maxValue가 출..
내일배움캠프 28일차 TIL - 팀과제 종료 매일 야근으로 함께 했던 팀과제를 제출하고 발표했다. 이렇게 팀프로젝트가 끝이 나고 아직 유니티 강의를 다 듣지 못해서 강의를 들으며 따라했다. 딱 스탯 계산하기 부분부터 못들었는데, 이 강의를 들었더라면 우리팀이 구현하고자 했던 공격 딜레이를 줄여주는 아이템을 먹을 수 있지 않았을까.. 하는 아쉬움이 든다. 오늘의 배운 것 아이템을 구현하는 방법은 여러가지가 있는데 그 중 클래스의 추상화가 있다. 우리팀은 각 아이템별로 별개의 스크립트를 만들어 그것을 통해 능력을 관리했는데, 강의에서 나온대로 했다면 여러 아이템들을 추가해도 그것을 기반으로 만들 수 있었으리라 생각된다. 먼저 여러 아이템 스크립트들이 공통적으로 사용할 PickUpItem 클래스를 추상화한다. 추상화는 이렇게 클래스 앞에 abstract..
내일배움캠프 27일차 TIL - 팀과제 마무리 오늘 배운 것 코드카타를 하던 중 2차원 배열 문제가 나왔다. 나는 공간지각능력이 최악인지라 2차원 배열 문제를 보자마자 ????? 하며 구글에 2차원 배열을 검색하고 복습을 시작했다. 2차원 배열이란 행과 열을 가진 배열로 대충 이런 형식이라고 보면 된다. 2차원 배열의 행과 열의 갯수를 구하는 명령어는 다음과 같다. GetLength(0) = 행의 갯수 GetLength(1) = 열의 갯수 그리고 한 2차원 배열에 대해 그것과 행과 열의 갯수가 같은 배열을 만드는것 또한 굉장히 간단한데, int arr1 = new int[4,5] 일때 이 arr1과 같은 행열을 가진 배열을 만드려면 int[,] a = (int[,])arr1.Clone(); 을 해주면 된다. 이제 진짜로 2차원배열에 대해 알게 된거 ..
내일배움캠프 26일차 TIL - 팀과제 오늘도 팀과제다. 지지부진했던것 같지만 어찌저찌 팀이 정한 필수구현기능을 대다수 구현했다. 내가 했으면 오늘안에 반도 못했을거 같은데, 역시 팀이 한마음으로 만들어내니 금방금방 완성되어갔다. 사실 나는 몇번이고 작성했던 코드들을 반복해서 작성하는 작업이었기에 금요일에 거의 모든 작업이 끝나긴 했다. 그래서 오늘은 QA가 된것마냥 게임을 테스트하고 버그를 고치는데 주력했다. 오늘의 한일 이것저것 설정값을 건드려보며 플레이 해보는데 플레이어의 HP량을 나타내는 HP바의 감소량이 체력이 100일때는 1일때든 똑같았다. 이는 플레이어의 스텟을 설정하는 StatsHandler와 GameManager가 연결이 안되어있기 때문이었다. 그래서 일단 StatsHandler를 가져와서 stats 변수로 지정해주고, 플레이..
내일배움캠프 25일차 TIL - 처음부터 다시 팀과제를 새로 만들기로 했다. 만들다보니 게임에 한계가 느껴졌다는것도 있지만 그냥 평범한 뱀서라이크 게임 그 이상도 이하도 아니었다. 그래서 기존의 설정은 거의 그대로 가져가나 적을 공격하는 주체가 캐릭터가 아닌 마우스에서 총알이 나오게 하고 적이 총에 맞으면 원샷 원킬로 죽게끔 했다. 기존의 설정을 그대로 가져가지만 하나의 기능을 바꾸면 그에 따라 바뀌어야할 코드양이 상당해서 처음부터 다시 시작하기로 했다. 이틀간의 작업물이 아무 의미가 없어지긴 했지만,, 그래도 팀원들이랑 같이 으쌰으쌰 만드니 지루함도 덜하다. 기억할 것 GetComponent는 Inspector에 있는 Component를 가져오는 기능이다!!! NullReference 에러가 뜬다면 Inspector에 가져오고자 하는 요소가 없는지..
내일배움캠프 24일차 TIL - 메인씬 리로드의 악몽 팀과제 2일차이다. 오늘은 투사체 구현에 힘썼다. 오늘의 버그 기존에 팀원분이 작업해주신 스텟을 적용하여 투사체를 만들었는데 공격의 딜레이와 투사체의 속도가 캐릭터의 스텟에 존재하지 않은데다 trail renderer를 다루는게 서툴어서 느리게 길을 그리며 날아가는 에어쇼 버그가 있었다. 캐릭터의 스텟을 정해주는 AttackStatsSetting 스크립트에 delay와 projectileSpeed 항목을 추가해서 rigidbody.velocity와 HandleAttackDelay에 추가해줬다. 사실 오늘의 버그는 깃에서 Conflict가 나서 메인씬이 싹 날라가는게 가장 치명적이었다. 이를 위해서는 작업 중 틈틈히 commit을 해주고 main으로 넘기기전 test branch를 활용하는 것이 중요하다...