스파르타코딩클럽 게임개발(57)
-
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 64일차(최종프로젝트 15일차 내가 구현한 것을 정리해보자. 발표 자료 준비)
시간 조작과 물리 퍼즐 구현 1. ReplayRecorder: 시간 역행 구현 기능: 객체의 움직임을 기록하고 역재생시켜 시간을 되돌리는 효과 제공. 주요 메소드: StartRecording() / StopRecording(): 녹화 시작 및 중지. StartReversePlayback() / StopPlaybackAndClearFrames(): 역재생 시작 및 중지. 구현 방법 사용 컴포넌트: Rigidbody, Renderer. 데이터 저장: Stack 활용. 코루틴 활용: 주기적인 프레임 기록 및 재생. 학습 포인트 스택 사용: 역순 재생에 적합한 LIFO 특성 활용. 코루틴 활용: 비동기적 프레임 처리. 보간 기법: Vector3.Lerp와 Quaternion.Lerp 사용. 2. Brack 스크..
2024.02.01 -
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 65일차(최종프로젝트 16일차 업데이트의 프레임 조절! 트러블슈팅!)
게임은 모두에게 동일한 포퍼먼스를 보여줘야하는데 우리 프로젝트는 현재 그러지 못했다. 안타깝게도 테스트 도중 모두에게 다른 동작을 보이게 되는 것을 발견하였고 우리는 머리를 모아 어떻게 하면 모두에게 똑같은 모습을 보여줄 수 있을지 고민했다. 처음에는 FixedUpdate를 사용할까 싶었지만 프로젝트상 사용할 수 없는 부분이라 넘겼다. 그렇다면 어떻게 안정적으로 모두에게 똑같은 포퍼먼스를 보여줘야할까? 차라리 Update()의 반복 횟수를 우리가 조정할 수 있다면.. 이라는 생각이 들었다. 분명.. 누구에게 물어보았을때 그런 방법은 없다고 그랬는데.. 아니..! 있었어 유니티엔진의 내장함수인 Update()의 반복실행 횟수를 조절하는 방법! 즉 프레임을 조정하는 방법인데 아래처럼 최초로 실행되는 메소드에..
2024.02.01 -
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 62일차(최종프로젝트 13일차 계가 느려지지 않는 버그)
개요 저번에 게임내의 시계오브젝트에 있는 초침을 움직이게 만들었었다. 하지만 게임내에서 플레이해보니 내가 미처 생각하지 못한 버그가.. 있었는데 바로 게임내에서 시간을 느리게 하거나 멈추어도 시계의 초침은 멈추거나 느려지지 않았던 것이다. 이부분은 게임을 부분에선 문제가 없지만 보이는 부분도 중요하다고 생각하기에 수정하기로 마음 먹었다. 수정 전 핵심 코드: DateTime currentTime = DateTime.Now; float hoursRotation = (currentTime.Hour % 12) * 30 + currentTime.Minute * 0.5f; float minutesRotation = currentTime.Minute * 6 + currentTime.Second * 0.1f; flo..
2024.01.31 -
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 61일차(최종프로젝트 12일차 면접준비 2!)
Struct와 Class 비교 Struct와 Class는 C#같은 얻어에서 데이터를 저장하는 방법이다. 이들은 데이터 구조를 정의하고 해당 데이터를 처리하기위해 사용되지만 Struct와 Class는 몇 가지 중요한 차이점을 가지고 있다. 1. 값 타입 vs. 참조 타입 Struct는 값 타입(Value Type)이며, Class는 참조 타입(Reference Type) Struct는 변수에 직접 값을 저장하며, 스택(Stack)에 할당 Class는 객체의 주소(참조)를 변수에 저장하며, 힙(Heap)에 할당 2. 사용 목적 Struct는 주로 간단한 데이터 구조에 사용된다. 예를 들어, 좌표(x, y)나 날짜(date)와 같은 작은 데이터를 저장하는 데 사용된다. Class는 보다 복잡한 데이터 구조와 ..
2024.01.29 -
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 59일차(최종프로젝트 10일차 시계를 만들어보자)
프로젝트에서 시계 오브젝트를 사용하게 되었다. 하지만 이 오브젝트의 에셋은 그저 3d모델만 달랑있는 에셋. 하지만 난 이 에셋을 실제 시간에 맞춰서 움직이도록 만들고 싶었기에 새로운 스크립트를 작성하기로 하였다. 에셋은 다행이 시침과 분침 초침의 움직임이 각각 나뉘어져있고 로케이션의 z값으로 회전을 조정할 수있었다. Unity 시계 침 움직임 관련 1. 기본 개념 시계의 시침, 분침, 초침을 실제 시간에 따라 움직이게 하는 작업. 스크립트를 사용하여 현재 시간을 기반으로 각 침의 회전 각도를 계산. 2. 시도한 방법들과 해결방법 첫 번째 시도: 초침, 분침, 시침이 각각 독립적으로 움직이도록 설정. 문제: 초침이 매 초마다 점프하듯 움직임. 해결: DateTime.Millisecond를 사용하여 부드러운..
2024.01.29 -
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 57일차(최종프로젝트 8일차 블랜더를 이용해서 기존에 가지고있는 모델 부숴버리기)
유튜브에 가보면 오브젝트를 부숴주는 코드를 볼 수 있다. 하지만 연산작업이 수없이 많이 들어가 결국에는 게임의 성능에 지대한 저하를 일으킬거라고 생각하여 해당코드의 사용을 포기하였다. 그렇다면 나는 어떻게 저 오브젝트를 부수었을까? 애초에 부숴진채로 나온 오브젝트가 아니다. 나는 블랜더를 사용하여 오브젝트를 부수었다. 내가 참고한 영상은 이 영상인데 Unity destructible objects in 8 steps (youtube.com) 블랜더에 오브젝트를 부수어주는 아주 간편하고도 쉬운 기능이 있었다. 이 파일을 블랜더에서 불러오기를 통해 불러온다. 블랜더는 구글에서 검색하여 4,0버전을 무료로 다운 받을수 있으니 다운받도록 하자
2024.01.22