Humility

아무리 노력해도 최고가 되지 못할 수 있다⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀그럼에도 노력하는자가 가장 겸손한 것 아닌가

공부하는 블로그
반응형

전체보기 80

[Unity] 유니티 C#) Casting ( 형변환 )

형변환 이란? 하나의 데이터 타입을 다른 데이터 타입으로 변환하는 것 형변환의 종류암시적 형변환 ( 자동 형변환 )int num = 10;float floatNum = num; // int → float 자동 변환long longNum = num; // int → long 자동 변환 사용 시기작은 크기의 데이터 타입에서 큰 크기로 변환할 때데이터 손실의 위험이 없어 자동으로 변환됨명시적 형 변환 ( 강제 형변환 )float floatNum = 10.5f;int num = (int)floatNum; // float → int 강제 변환// 10이 저장됨 (소수점 이하 손실) 사용시기큰 크기의 데이터 타입에서 작은 크기로 변환할 때데이터 손실의 가능성이 있어 명시적으로 변환해야 함사용 예시기본 데이터 타..

유니티/문법 2025.01.16

[Unity] 유니티 C#) try-catch문 ( 예외처리 )

try-catch문이란?프로그램 실행 중 발생할 수 있는 오류(예외)를 처리하기 위한 구문  예상치 못한 상황이 발생했을 때 프로그램이 강제로 종료되는 것을 방지하고, 적절한 대응을 할 수 있게 해준다기본 구조try { // 예외가 발생할 수 있는 코드} catch (예외종류) { // 예외가 발생했을 때 실행할 코드} finally { // 예외 발생 여부와 관계없이 항상 실행되는 코드}예외처리를 사용하는 이유1. 프로그램의 안정성 확보public class FileManager : MonoBehaviour{ // 예외처리가 없는 경우 public void SaveWithoutTryCatch(string data) { // 파일 저장 실패시 프로그램이 강제 ..

유니티/문법 2025.01.15

[Unity] 유니티 C#) LINQ ( Language Integrated Query )

LINQ란? C#에서 데이터 쿼리를 위한 통합 프로그래밍 모델로, 다양한 데이터 소스(컬렉션, XML, 데이터베이스 등)에 대해 일관된 방식으로 쿼리를 작성할 수 있게 해주는 기능 예를 들어, 도서관에서 책 찾기를 생각하면 쉽다 "2000년 이후에 출간된 소설책만 찾아줘""가격이 2만원 이하인 책들을 가격 순으로 정렬해줘""과학 분야 책들의 평균 가격을 계산해줘"  복잡한 for문이나 if문을 여러 번 사용하여 찾을 수도 있지만,LINQ를 사용하면 더욱 쉽고 직관적으로 처리할 수 있다. 예시// 체력이 50% 이하인 적 캐릭터들 찾기var weakEnemies = enemies.Where(enemy => enemy.health player.score);  쉽게 말해 "데이터를 검색하고 정리하는 만능 도..

유니티/문법 2025.01.14

[Unity] 유니티 C#) 전처리문 (Preprocessor Directives)

전처리문이란? 코드가 컴파일되기 전에 처리되는 특별한 지시문 간단한 예시#if DEBUGDebug.Log("디버그 모드입니다");#endif 위 코드에서 #if DEBUG는 "만약 DEBUG 모드라면" 이라는 의미이다컴파일러는 이 코드를 실행하기 전에 먼저 확인한다  DEBUG 모드로 설정되어 있다면? Debug.Log() 코드가 남아있게 된다 DEBUG 모드가 아니라면? 이 코드는 완전히 제거되어 최종 프로그램에 포함되지 않습니다전처리문의 주요 특징'#' 기호로 시작한다컴파일 전에 처리된다조건부로 코드를 포함하거나 제외할 수 있다플랫폼별 다른 코드를 작성할 때 자주 사용된다실제 활용 방법void Start(){ #if UNITY_ANDROID // 안드로이드 전용 코드 S..

유니티/문법 2025.01.13

[Unity] 유니티 C#) Event ( 이벤트 ), Action ( 액션 )

주요 이벤트 3가지 1. UnityEvent기본 개념UnityEvent는 Unity에서 제공하는 이벤트 시스템으로,Inspector에서 시각적으로 이벤트를 연결하고 관리할 수 있게 해주는 메커니즘  기본 사용법// UnityEvent 정의public UnityEvent onGameStart;// 이벤트 발생void StartGame() { onGameStart.Invoke();}// 이벤트 구독void OnEnable() { onGameStart.AddListener(HandleGameStart);} 2. C# Evnet기본 개념 "특정 상황이 발생했음" 을 다른 클래스에게 알리는 메커니즘  기본 사용법// 이벤트 정의public event Action onScoreChanged;// 이벤트 ..

유니티/문법 2025.01.08

[Unity] 유니티 C#) Delegate ( 델리게이트 ), Anonymous Method (익명 메서드) ,Lambda ( 람다 )

델리게이트란? 메소드를 참조하는 타입으로, 메소드를 변수처럼 저장하고 전달할 수 있게 해주는 기능 특징메소드를 참조할 수 있는 타입타입 안정성 보장체인(다중 델리게이트)이 가능메소드 시그니처가 일치해야 함사용하는 이유콜백 메커니즘 구현이벤트 처리메소드를 매개변수로 전달유연한 코드 설계활용 사례이벤트 시스템비동기 프로그래밍플러그인 아키텍처예시 코드public class PlayerSystem : MonoBehaviour{ // 델리게이트 정의 public delegate void PlayerStatusChanged(int health, int mana); public event PlayerStatusChanged OnStatusChanged; private int health = 10..

유니티/문법 2025.01.07

[Unity] 유니티 C#) Garbage Collector ( 가비지 컬렉터 )

가비지 컬렉터(GC)란?C#은 자동 메모리 관리를 위해 가비지 컬렉터를 사용한다더 이상 참조되지 않는 객체를 자동으로 감지하고 제거하여 메모리를 회수한다이 과정에서 게임성능에 영향을 줄 수 있다.가비지 컬렉터 (Garbage Collector)시스템에서 메모리 관리를 담당하는 실제 프로그램 구성요소메모리 관리를 수행하는 프로그램 또는 프로그램의 한 부분가비지 컬렉션을 수행하는 주체시스템의 구성 요소 가비지 컬렉션 (Garbage Collection)프로그램이 수행하는 메모리 정리 작업가비지 컬렉터가 수행하는 작업/프로세스 자체불필요한 메모리를 찾고 해제하는 행위작업/프로세스의 개념쉽게 비유하자면가비지 컬렉터 = 청소부가비지 컬렉션 = 청소하는 행위C#의 GC 작동 방식1. 세대별 가비지 컬렉션 (Gene..

유니티/문법 2025.01.06

[Unity] 유니티 C#) ObjectPool ( 오브젝트풀링 )

오브젝트 풀링이란?게임 오브젝트를 필요할 때마다 생성하고 파괴하는 대신, 미리 생성해둔 오브젝트들을 재사용하는 메모리 관리 기법오브젝트가 필요할 때는 풀에서 꺼내서 활성화하고, 필요 없을 때는 비활성화하여 다시 풀에 반환오브젝트 풀링을 사용하는 이유1. 실시간 성능 향상오브젝트 생성/파괴는 비용이 큰 작업이므로, 미리 생성된 오브젝트를 재사용하면 성능이 크게 향상됨 2. 메모리 파편화 방지지속적인 생성/파괴로 인한 메모리 파편화를 예방할 수 있음 3. 가비지 컬렉션 감소오브젝트 파괴로 인한 가비지 컬렉션 발생을 줄일 수 있음Instantiate와 Destroy의 문제점1. 높은 CPU 부하오브젝트 생성 및 파괴는 CPU를 많이 사용하는 작업임 2. 메모리 단편화지속적인 생성/파괴로 인해 메모리가 조각나는..

유니티/문법 2025.01.03

[Unity] 유니티 C#) ScriptableObject ( 스크립터블오브젝트 )

스크립터블오브젝트란?유니티에서 제공하는 데이터 컨테이너 클래스로, 게임 내의 데이터를 관리하고 저장하는데 매우 유용하다 주요 특징프리팹처럼 에셋으로 저장됩니다. Project 창에서 직접 생성하고 관리할 수 있다MonoBehaviour와 달리 GameObject에 부착할 필요가 없다메모리 관리가 효율적입니다. 같은 ScriptableObject를 여러 곳에서 참조해도 메모리에 한 번만 로드된다Unity 인스펙터에서 직접 데이터를 수정할 수 있다 스크립터블 오브젝트 만드는 법C# 스크립트 생성// ItemData.csusing UnityEngine;[CreateAssetMenu(fileName = "New Item", menuName = "Inventory/Item")]public class ItemDat..

유니티/문법 2025.01.02

[Unity] 유니티 C#) Cinemachine ( 시네머신)

시네머신이란?유니티에서 제공하는 강력한 카메라 시스템 패키지주요 특징1. 모듈화된 카메라 시스템여러 카메라를 쉽게 관리하고 전환 가능각 카메라의 설정을 독립적으로 관리재사용 가능한 카메라 프리셋 생성 가능 2. 실시간 미리보기게임 실행 없이 씬 뷰에서 카메라 움직임 확인 가능실시간으로 설정을 조정하며 결과 확인빠른 이터레이션으로 작업 효율 향상 3. 전문적인 카메라 기법 지원영화적인 카메라 움직임 구현 가능다양한 카메라 효과(흔들림, 노이즈 등) 제공복잡한 카메라 워크도 쉽게 구현시네머신 생성 주요 옵션1. 2D Camera2D 게임에 최적화된 카메라픽셀 퍼펙트 렌더링 지원Z축 회전만 지원하여 2D 환경에 적합※ 예시 플랫포머 게임 ( 슈퍼마리오 스타일 )2D 액션게임에서 캐릭터 추적픽셀아트 게임에서 픽..

유니티 2024.12.31
반응형