본문 바로가기

알아두면 좋은것들40

02.27 (TIL) 유니티로 타이머 구현 알고리즘 유니티에서 타이머를 구현하는 가장 일반적인 방법은 Update() 메서드를 사용하여 시간을 추적하는 것입니다. 아래는 간단한 카운트다운 타이머 구현 방법입니다: 변수 선언: 타이머의 남은 시간을 저장할 변수를 선언합니다. Update 메서드 사용: 매 프레임마다 Update() 메서드 내에서 Time.deltaTime을 사용하여 타이머 변수에서 시간을 감소시킵니다. 타이머 검사: 타이머가 0 이하로 내려갔는지 검사하고, 0 이하로 내려간 경우 타이머가 완료되었음을 알립니다(예: UI 업데이트, 특정 이벤트 트리거 등). 간단 구현 더보기 using UnityEngine; public class TimerExample : MonoBehaviour { public float t.. 2024. 2. 27.
02.26 (TIL) Unity의 Update 메서드 종류와 특징 Unity에서는 게임 오브젝트의 상태를 업데이트하기 위해 여러 종류의 Update 메서드를 제공합니다. 각각은 다른 시점에 호출되며, 특정 유형의 작업을 수행하기에 적합한 특징을 가집니다. Update() 매 프레임마다 호출됩니다. 게임 로직, 사용자 입력 처리 등 대부분의 일반적인 업데이트 작업을 수행하는 데 사용됩니다. 프레임마다 실행되므로, 프레임 속도에 따라 호출 빈도가 달라집니다. FixedUpdate() 일정한 시간 간격으로 호출되며, 주로 물리 업데이트(리지드바디 이동, 충돌 체크 등)에 사용됩니다. 물리 시뮬레이션을 일관되게 유지하기 위해 프레임 속도와 무관하게 일정한 주기로 실행됩니다. "Time.fixedDeltaTime"을 통해 호출 주기를.. 2024. 2. 26.
02.23 (TIL) MonoBehaviour 클래스의 주요 메서드 MonoBehaviour는 Unity에서 스크립트 작성을 위한 기본 클래스입니다. 게임 오브젝트에 부착하여 사용하며, 다양한 이벤트에 대응하는 메서드를 제공합니다. 아래는 MonoBehaviour 클래스의 주요 메서드와 그 기능을 간략히 설명합니다: Awake(): 오브젝트 생성 시 최초에 한 번만 호출되며, 초기화 작업에 주로 사용됩니다. 이 시점에서는 모든 게임 오브젝트가 로드되었지만, 아직 게임 플레이가 시작되지 않은 상태입니다. Start(): Awake() 이후에, 첫 번째 프레임 업데이트 전에 호출됩니다. 다른 오브젝트와의 상호작용이 필요한 초기화 작업에 적합합니다. Update(): 매 프레임마다 호출되며, 게임의 주요 로직 처리에 사용됩니다. .. 2024. 2. 23.
02.19 (TIL) MVC 모델 MVC(Model-View-Controller) 모델은 소프트웨어 설계 패턴 중 하나로, 애플리케이션을 세 가지 주요 구성 요소로 분리하여 관리합니다. Model: 데이터와 비즈니스 로직을 관리합니다. 애플리케이션의 정보, 데이터의 조작과 처리 로직을 담당하며, 상태 변경 시 View에 통보합니다. View: 사용자 인터페이스(UI) 요소를 담당하며, 사용자에게 데이터를 표시합니다. Model로부터 데이터를 받아 사용자에게 보여주는 역할을 합니다. Controller: 사용자의 입력을 받고 처리하는 컴포넌트입니다. 사용자의 액션에 따라 Model을 업데이트하고, 그 결과를 View에 반영하도록 지시합니다. MVC 모델은 애플리케이션의 구조를 명확히 분리함으로써, 각 부분의 재사용성과 확장성을.. 2024. 2. 19.
02.15 (TIL) 인터페이스와 추상클래스의 차이 인터페이스(Interface): 모든 메소드가 추상 메소드(구현부가 없는 메소드)로만 이루어져 있으며, 다중 상속이 가능합니다. 인터페이스는 특정 기능을 구현하기 위한 메소드의 시그니처(형태)만을 정의합니다. 클래스가 인터페이스를 구현(implement)할 때는 인터페이스에 정의된 모든 메소드를 구현해야 합니다. 추상클래스(Abstract Class): 하나 이상의 추상 메소드를 포함할 수 있으며, 구체적인 메소드(구현부가 있는 메소드)도 포함할 수 있습니다. 추상 클래스는 다른 클래스가 상속(extend)할 수 있으며, 추상 클래스를 상속하는 자식 클래스는 부모 클래스의 추상 메소드를 모두 구현해야 합니다. 추상 클래스를 사용하면 기본적인 구현을 제공하면서도 일부 메소드는.. 2024. 2. 15.
02.13 (TIL) 상속(Inheritance)과 프로젝트 적용 예 상속이란: 상속은 객체지향 프로그래밍에서 한 클래스(부모 클래스)의 속성과 메소드를 다른 클래스(자식 클래스)가 물려받는 메커니즘입니다. 이를 통해 코드 재사용성을 높이고, 유지보수성을 개선하며, 계층적인 클래스 구조를 구성할 수 있습니다. 프로젝트 적용 예: 예를 들어, 게임 개발 프로젝트에서 여러 유형의 캐릭터(예: 전사, 마법사, 궁수)가 공통적인 속성(체력, 마나, 위치 등)과 행동(이동하기, 공격하기)을 가지고 있다고 가정. 이 경우, '캐릭터'라는 기본 클래스를 정의하고, 이를 상속받아 각 캐릭터 유형별로 특화된 클래스(예: '전사', '마법사', '궁수')를 구현할 수 있습니다. 이렇게 함으로써 공통적인 코드를 재사용하고 각 캐릭터 유형의 특성.. 2024. 2. 13.
02.06 (TIL) 자료구조의 종류 및 차이점 자료구조는 데이터를 효율적으로 저장하고 관리하기 위한 구조입니다. 주요 자료구조에는 배열(Array), 연결 리스트(Linked List), 스택(Stack), 큐(Queue), 해시 테이블(Hash Table), 힙(Heap), 그래프(Graph), 트리(Tree) 등이 있습니다. 열(Array): 고정된 크기를 가지며, 인덱스를 통해 빠른 데이터 접근이 가능합니다. 동일한 타입의 데이터를 순차적으로 저장합니다. 연결 리스트(Linked List): 각 노드가 데이터와 다음 노드를 가리키는 포인터를 포함하여 연결되어 있습니다. 동적 크기 조정이 가능하며, 삽입과 삭제가 배열에 비해 용이합니다. 스택(Stack): LIFO(Last In First Out) 원칙에 따라 작동하는.. 2024. 2. 6.
02.05 (TIL) 선택 정렬과 버블 정렬 설명 및 코드 작성 선택 정렬(Selection Sort): 가장 작은 (또는 가장 큰) 요소를 찾아서 맨 앞의 요소와 바꾸고, 그 다음 작은 요소를 찾아 두 번째 요소와 바꾸는 방식으로 정렬을 진행합니다. 이 과정을 배열의 모든 요소에 대해 반복합니다. 버블 정렬(Bubble Sort): 인접한 두 요소를 비교하여 잘못된 순서(예: 오름차순 정렬에서 앞의 요소가 더 큰 경우)가 있으면 서로 위치를 바꾸는 과정을 배열의 끝까지 반복합니다. 이 과정을 배열이 정렬될 때까지 반복합니다. 선택 정렬(Selection Sort) 코드 예시 : 더보기 def selection_sort(arr): // 배열의 길이만큼 반복 for i in range(len(arr)): // 현재 인덱스를 최.. 2024. 2. 5.
02.02 (TIL) 델리게이트(Delegate)의 개념 핵심: 델리게이트는 메소드를 참조하는 타입입니다. C#에서 델리게이트는 메소드에 대한 참조를 보관하는 타입으로, 메소드를 변수처럼 전달하고 호출할 수 있게 해줍니다. 이를 통해 프로그램에서 메소드를 동적으로 할당하고 실행할 수 있으며, 콜백 메소드와 이벤트 처리에 널리 사용됩니다. 'delegate', 'event', 'action', 'func' 간의 차이 핵심: 각 키워드는 .NET에서 메소드 참조와 이벤트 처리를 위해 사용됩니다. 'delegate'는 메소드를 참조하기 위한 타입 선언에 사용됩니다. 'event'는 델리게이트를 기반으로 하는 이벤트를 선언할 때 사용되며, 클래스 외부에서 직접 호출할 수 없게 합니다. 'action'과 'func'는 각각 반환 값이.. 2024. 2. 2.
02.01 (TIL) 가비지 컬렉터 회피 전략 핵심: 관리되는 리소스 사용 최소화 및 효율적 관리로 가비지 컬렉터 회피. 객체를 필요 이상으로 생성하지 않고, 사용이 끝난 객체는 즉시 참조를 해제합니다. 또한, 대규모 객체 대신 작은 객체를 사용하고, 장기간 지속되는 객체는 풀링(pooling) 기법을 사용하여 관리합니다. 불필요한 박싱/언박싱을 피하고, 비관리형 리소스를 사용하는 경우에는 적절히 해제하는 것이 중요합니다. 가비지 컬렉션(Garbage Collection) 핵심: 가비지 컬렉션은 자동으로 메모리를 관리합니다. 프로그램이 동적으로 할당한 메모리 영역 중 사용하지 않는 부분을 자동으로 탐지하여 해제하는 시스템입니다. 이 과정은 메모리 누수를 방지하고 프로그램의 안정성을 높이지만, 때때로 성능 저하의 원인이 될 수.. 2024. 2. 1.