분류 전체보기(69)
-
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 65일차(최종프로젝트 16일차 업데이트의 프레임 조절! 트러블슈팅!)
게임은 모두에게 동일한 포퍼먼스를 보여줘야하는데 우리 프로젝트는 현재 그러지 못했다. 안타깝게도 테스트 도중 모두에게 다른 동작을 보이게 되는 것을 발견하였고 우리는 머리를 모아 어떻게 하면 모두에게 똑같은 모습을 보여줄 수 있을지 고민했다. 처음에는 FixedUpdate를 사용할까 싶었지만 프로젝트상 사용할 수 없는 부분이라 넘겼다. 그렇다면 어떻게 안정적으로 모두에게 똑같은 포퍼먼스를 보여줘야할까? 차라리 Update()의 반복 횟수를 우리가 조정할 수 있다면.. 이라는 생각이 들었다. 분명.. 누구에게 물어보았을때 그런 방법은 없다고 그랬는데.. 아니..! 있었어 유니티엔진의 내장함수인 Update()의 반복실행 횟수를 조절하는 방법! 즉 프레임을 조정하는 방법인데 아래처럼 최초로 실행되는 메소드에..
2024.02.01 -
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 63일차(최종프로젝트 14일차 코루틴 지연 시간 버그)
코루틴을 이용한 시간 제어 이슈 해결기 문제 상황 게임 플레이의 시간 정지와 시간 지연을 코루틴을 사용하여 제어하려 했다. 그런데 중지했을 때, 코루틴이 중지되지 않아 코루틴으로 실행 중인 오브젝트가 멈추지 않는 문제가 발생했다. 해결 시도 1차 시도: 게임 상태에 따라 코루틴 제어 if (Main.Game.CurState != GameState.PAUSE) { yield return new WaitForSecondsRealtime(0.02f); } 처음에는 메인 게임 매니저에 있는 상태를 나타내는 이넘(Enum) 값을 이용하여 구분하려 했다. 그런데 이 코드는 코루틴이므로, if문에서 조건이 만족하지 않을 경우 바로 리턴하는 것이 아니라, 그 아래의 코드도 실행되는 문제가 있었다. 결국, 이 방법은 0..
2024.01.31 -
오늘은 스파르타 코딩 클럽 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 게임 개발 과정 60일차(최종프로젝트 11일차 면접준비!)
팀 프로젝트에 빠져 여태껏 기술면전 문제를 풀지 않고 있었다. 그래서 한번 제대로 생각해서 기술면접을 준비하고자 한다. 1. float와 int의 표현 가능한 수의 범위가 다른 이유는 무엇인가요? 일단 둘다 4byte의 크기를 가지지만 int 와 float는 데이터의 저장 방식부터가 다르다. int는 정수를 표현하는데 사용되고 일정한 크기의 메모리 공간에 숫자를 그대로 저장하는 방식이다. 이러한 데이터는 메모리에서 이진수의 형태로 저장되는데 대부분의 컴퓨터 시스템에선 정수를 2의 보수형태로 표현한다. 예를 들어 32비트의 int값을 저장한다고 가정했을때 맨 첫번째의 비트의 부호비트로 사용되고 0은 양수 1은 음수로 표현된다. 그러나 float같은 경우에는 첫번째의 비트가 부호비트로 사용되는 방식은 같지만..
2024.01.29 -
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 59일차(최종프로젝트 10일차 시계를 만들어보자)
프로젝트에서 시계 오브젝트를 사용하게 되었다. 하지만 이 오브젝트의 에셋은 그저 3d모델만 달랑있는 에셋. 하지만 난 이 에셋을 실제 시간에 맞춰서 움직이도록 만들고 싶었기에 새로운 스크립트를 작성하기로 하였다. 에셋은 다행이 시침과 분침 초침의 움직임이 각각 나뉘어져있고 로케이션의 z값으로 회전을 조정할 수있었다. Unity 시계 침 움직임 관련 1. 기본 개념 시계의 시침, 분침, 초침을 실제 시간에 따라 움직이게 하는 작업. 스크립트를 사용하여 현재 시간을 기반으로 각 침의 회전 각도를 계산. 2. 시도한 방법들과 해결방법 첫 번째 시도: 초침, 분침, 시침이 각각 독립적으로 움직이도록 설정. 문제: 초침이 매 초마다 점프하듯 움직임. 해결: DateTime.Millisecond를 사용하여 부드러운..
2024.01.29