본문 바로가기

분류 전체보기136

스파르타 내배캠 Unity 3기 10일차 흐아ㅏㅏㅏㅏㅏㅁ 오늘은 어제에 이어서 해보자. 어제 구현한 기능은 Player기본 정보에 대한 세이브 기능이다. 즉, Player가 가지고 있는 아이템에 대한 정보는 저장이 되지 않았기에 이 부분을 해보고자 한다. 전체적인 아이템 구매, 장착의 흐름을 먼저 알아보자. 그리고 아이템을 구매 시 아이템 구매 - 플레이어의 보유 아이템 리스트에 추가 아이템 장착 - 플레이어의 장착 아이템 딕셔너리 Type (Weapon등) 키에 Item 값으로 추가 이것이 기본적인 흐름이다. Player 클래스에 해당 List와 Dictionary 가 있지만 Player 클래스를 저장 시 이 둘은 저장되지 않는다. Json을 이용한 저장에 Type은 지원하지 않기 때문. 그렇기 때문에 저장이 가능한 타입을 이용해야한다. 이 .. 2024. 1. 5.
스파르타 내배캠 Unity 3기 9일차 음.. 개인과제 선택 요구사항 마지막 - 세이브구현... 사실 어디서부터 모르고 뭘 모르는지 잘 모르겠다. (그냥 다 모르겠다.) 그래서 하면서 느꼈던 것들을 적다 보면 갈피를 잡지 않을까? 시도 1. BinaryFormatter [사용되지 않음] 세이브를 하기 위해 게임이 종료되는 시점에 Player의 정보를 받아야 하는데 text로 player의 정보를 일일이 받으면 비효율적이니, 객체를 받아서 한 번에 처리해 보고자 했다. 그 수단으로 먼저 BinaryFormatter를 써보기로 했다. FileStream fs = new FileStream("C:\\Users\\User\\Documents\\GitHub\\SpatranProject\\playerData.dat", FileMode.Create); B.. 2024. 1. 4.
스파르타 내배캠 Unity 3기 8일차 아~ (무슨 말이지?) 알고리즘... 예상은 했지만 예상밖으로 난해하네? 오늘부터 알고리즘 파트를 공부하기 시작했다. 역시나 초반부터 이해하기 힘든 녀석을 맞이했다. 그래서 적기 시작하는 TIL Quick Sort(퀵 정렬) 알고리즘 코드에 앞서 퀵 정렬 알고리즘에 대해 알아보자. 퀵 정렬은 분할 정복(divide and conquer) 방법을 통해 리스트를 정렬한다. 리스트 가운데서 하나의 원소를 고른다. 이렇게 고른 원소를 피벗이라고 한다. 피벗 앞에는 피벗보다 값이 작은 모든 원소들이 오고, 피벗 뒤에는 피벗보다 값이 큰 모든 원소들이 오도록 피벗을 기준으로 리스트를 둘로 나눈다. 이렇게 리스트를 둘로 나누는 것을 분할이라고 한다. 분할을 마친 뒤에 피벗은 더 이상 움직이지 않는다. 분할된 두 개의.. 2024. 1. 3.
스파르타 내배캠 Unity 3기 7일차 오늘은 난이도가 좀 있네;;; C# 문법 종합반 3주차 과제로 스네이크 콘솔 게임 만들기를 했다. 로직에서 좀 많이 헤매게 됐는데 전체 코드가 기니까 어려웠던 부분과 새로 알게된 부분을 작성해야겠다. 먼저 새로 알게된 것은 아래와 같다. Console.KeyAvailable 해당 코드는 키 입력이 있을 때에만 true를 반환하는 코드이다. if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(true); ConsoleKey pressedKey = key.Key; switch (pressedKey) { case ConsoleKey.LeftArrow: snake.dir = Direction.LEFT; break; case ConsoleKey.Ri.. 2024. 1. 2.
스파르타 내배캠 Unity 3기 6일차 새해 복 많이 받으세요들~ 미니 프로젝트 주차가 끝나고 드디어 본격적인 C# 종합문법 주차가 시작되었다. 문법 첫 주차는 팀 과제가 아닌 개인과제가 미션으로 주어졌다. 과제내용은 스파르타 Text 던전 만들기 콘솔로 작업하는건 굉장히 오랜만이다. 마침 깃허브로 제출이다보니 깃허브에대한 숙련도도 함께 쌓을 수 있어서 좋구만? 요구사항에는 4가지 필수사항과 8가지 선택사항이 있다. 그 중 오늘은 2가지 필수사항을 구현해보자. 1. 게임 시작 화면 2. 상태보기 이 두가지를 구현해보도록 하자. 먼저 비쥬얼스튜디오를 켜서 새로운 프로젝트를 생성하자. (2022버전을 사용했다.) 프로젝트를 만들었으니 이제 게임을 만들어 보자. 1. 게임 시작 화면 먼저 프로그램을 실행 했을 때 1. 상태 / 2. 인벤토리 / 3.. 2023. 12. 29.
스파르타 내배캠 Unity 3기 5일차 끝! 끝! 끝! 끝! 끝! 미니 팀 프로젝트 주차가 드디어 끝나는 날이다. 근데 근데 근데 다른 팀들의 발표를 들으며 몇 가지 버그들을 듣다보니 우리 팀 프로젝트에도 포함되어 있는 버그라 생각이 돼서 프로젝트 마무리와 발표까지 되었지만 그래도 급히 수정을 해보려 한다. ! BugFix 문제점 : 빠르게 같은 카드를 연속 클릭하면 해당 카드를 매칭 성공한 것으로 인식이 된다. 해결방법 : Card 클래스에서 자신이 선택 됐는지 체크를 해주고 선택 됐으면 선택함수를 무시한다. 사진과 같은 어이없는 버그가 있었다...... 그런데 해결방법도 어이없을 정도로 간단하다. Card 스크립트에 코드 몇 줄만 추가 해주면 된다. public class card : MonoBehaviour { bool isSelecte.. 2023. 12. 28.
스파르타 내배캠 Unity 3기 4일차 마지막 챌린지 구현 하는 날~ 구현하기에 앞서 오늘은 조원 분께서 내가 알고싶었던 기능을 알려주셔서 먼저 짚고 넘어가야겠다. string 값을 넣어 줄 때 나는 ------ $"가나다 {int변수} " ------ 이런식으로 문자열 보간을 이용해 많이 써오고 있었다. 그런데 float값을 넣어 줄 땐 다음 코드와 같이 ------ + score.ToString("N2") ------ 소숫점 표현 때문에 +를 이용해 썼다. bestTxt.text = score > 0f ? "현재 난이도 최고기록 : " + score.ToString("F2") : ""; 기존에 내가 쓰던 문법 중 일부이다. 위처럼 쓰면 보간을 이용하지 못해 개인적으로 기분이 영 별로다. 하지만 오늘 알아낸 방법 두 가지 bestTxt.te.. 2023. 12. 27.
스파르타 내배캠 Unity 3기 3일차 연휴... 연휴... 어디갔어... 피곤해... 이번 주말엔 전에 썻던 TIL들을 좀 봤다. 솔직히 난해하다는 느낌을 많이 받았다. 그래서 오늘은 좀 깔끔하게 잡설을 줄여보고자 한다. 오늘의 구현 카드 등장 효과 연출하기 먼저 카드 등장을 어떤식으로 연출할지 정하자. 1. 카드가 카메라 밖에서 순차적으로 생성된다. 2. 생선된 카드는 자신이 있어야 할 위치로 이동한다. 3. 이동하면서 회전한다. (표창처럼) 1. 카드가 카메라 밖에서 순차적으로 생성 이 부분은 코루틴으로 제어가 가능할 것 같다. 카드 생성, 위치지정, 셋업 부분을 코루틴 함수로 바꿔주자. public bool hasplayed { get; private set; } = false; private void SpawnCards() { Lis.. 2023. 12. 26.
스파르타 내배캠 Unity 3기 2일차 오늘로 2일차... 벌써 조원들과 어색함이 많이 사라졌다! 굿! 어제는 기능구현을 각자 1개씩 맡아서 했지만, 오늘은 하나를 다같이 해보는 방식으로 했다. 먼저 각자 기능 구현을 하고, 서로의 방식을 화면공유를 통해 자신의 코드를 알려주고 구현을 못 하신 분들은 발표자들의 코드를 보며 배워가는 모르는 부분은 채워주고 아는 부분은 확고히 다져나가며 좀 더 좋은 방향을 제시하는 일석 삼조의 협업! 물론 시간은 많이 걸리긴 한다...ㅎ;; 그래서 오늘의 기능구현 목록 1. 카드 오브젝트 개수 늘리기 (사진 바리에이션 늘리기) 2. 현재 스테이지(또는 난도)에 따라 카드 배열 증가시켜보기 이렇게 두 가지를 한 번에 하는걸로 했다. 카드 사진을 기왕 늘리는겸 난이도 모드도 추가하는것이 맞다고 판단했다. 가보자! .. 2023. 12. 22.