728x90

분류 전체보기 191

추상클래스 abstract vs virtual

abstract본문 없음 → 자식이 반드시 구현해야 함자식 클래스에서 override 없으면 컴파일 에러 발생public abstract class EnemyState { public abstract void Update(); // 자식이 무조건 구현해야 함} virtual기본 구현 있음 → 자식이 원하면 override구현 안 해도 기본 기능 그대로 사용 가능public abstract class EnemyState { public virtual void Enter() { Debug.Log("기본 Enter"); } public abstract void Update(); // 반드시 구현 public virtual void Exit() { Debug.Log("기본 Exit");..

[C#] 추상클래스

추상 클래스란?추상 클래스는 말 그대로 "추상적인 틀"이다.즉, 공통되는 기능은 직접 구현해놓고, 각 클래스마다 달라져야 하는 부분은 "구현하지 않고" 남겨두는 클래스 비유: 자동차 설계도Car라는 추상 클래스가 있다.바퀴가 4개이고, 시동을 거는 기능은 모든 차가 같다.그런데 달리는 방식은 차마다 다르다.(전기차, 휘발유차, 수소차 등…)abstract class Car { public void StartEngine() { Debug.Log("엔진 시동 켬"); } public abstract void Drive(); // 구체적인 운전 방식은 자식이 정함} 핵심 개념 3줄 요약개념설명abstract class직접 인스턴스화할 수 없는 클래스abstract method..

[C#] 제네릭(Generic)

제네릭이란?여러 타입에 대해 재사용 가능한 코드를 작성하는 문법즉, 자료형을 미리 정하지 않고 나중에 정할 수 있는 방법이다. 특히 풀링 시스템 같은 데서 쓰인다.public class Box{ public T item;}Box, Box 등 어떤 타입이든 활용 가능하다.T는 타입 매개변수로, 나중에 실제 타입으로 바뀜 📝 예시Box intBox = new Box();intBox.item = 10;Box strBox = new Box();strBox.item = "hello"; 제약 조건 (where)특정 타입만 사용하도록 조건을 걸 수 있다 // T는 반드시 클래스여야 함public class Storage where T : class// T는 MonoBehaviour이면서 IPoolable 인..

Visual Studio vs VS Code, 한글 주석 깨짐 방지 팁

문제상황Visual Studio와 VS Code는 기본 인코딩이 다르기 때문에,처음부터 인코딩을 맞추고 시작하는 게 정말 중요하다. 이 사실을 모르고 팀프로젝트를 진행했더니 주석이 깨져서 알아볼수 없는 형태가 되어있었다."한글 주석 깨짐은 인코딩 차이 때문이니 꼭 프로젝트 시작 전에 맞추고 시작하자!" ❗ 주석이 깨지는 이유?VS Code에서 작성한 파일을 Visual Studio에서 열면→ 한글 주석이 � 로 깨질 수 있음Visual Studio에서 작성한 파일을 VS Code에서 열면→ 저장 시 인코딩이 바뀌어 깨질 수 있음 💡 해결법방법 1. VS Code 인코딩 설정 변경하단 바에서 UTF-8 클릭 → Save with Encoding 선택UTF-8 with BOM 선택 후 저장 방법 2. ..

URP 핑크색 되돌리기

현재상황urp로 생성하고 사과프리팹을 넣었는데 핑크색 독사과가 나왔다이를 정상적인 사과로 되돌려보자 혹시나 싶어 다른 것도 넣어봤는데 역시 핑크공주들이 되었다. 핑크공주 원인URP로 프로젝트를 생성한 후 사용할 에셋을 불러왔을때 이렇게 분홍이 되는이유는 shader호환되지 않거나shader코드에 오류가 있거나material이 끊어진 경우(mesh필터에서 연결이 끊어졌을때)크게 이렇게 3가지가 있다. 나는 강의에서 주는 에셋을 받아왔는데 1번의 경우였다. 해결방법 Window> Rendering> Render Pipeline Converter Render Pipeline Converter를 보면 Built-in to URP이렇게 적혀있다. Built-in으로 되어있는 것을 URP로 바꿔준다는 뜻이다.여..

Unity Scene 창 초기화 & Game 뷰와 일치시키기

Unity를 사용하다 보면 Scene 창과 Game 창이 다르게 보여서 작업이 불편할 때가 있다. 특히 Scene 뷰가 이상한 방향으로 돌아가거나, 카메라 시점이 꼬여서 화면이 엉망이 될 때가 있다.오늘은 Unity에서 Scene 뷰 초기화하는 방법과 Game 창과 시점을 맞추는 방법을 정리해보았다. Scene 뷰 초기화 방법 (뷰 정렬)방법 1: 뷰 기즈모(좌표축)로 정렬하기Scene 뷰 오른쪽 위에 있는 X, Y, Z 축을 찾는다.축 옆에 있는 집 모양 아이콘을 더블 클릭하면 정면 시점으로 초기화된다.Front, Top, Left 같은 글자를 클릭하면 원하는 방향으로 정렬할 수도 있다.👉 정면, 위, 옆 시점을 빠르게 바꿀 수 있다. 방법 2: 마우스 조작우클릭 + 드래그: Scene 뷰를 자유롭게..

[C#] C#에서 new()만 써도 된다?

개요C# 코드를 보다 간결하게 만드는 최신 문법,바로 타입 생략형 객체 생성을 알게 되어 신기해서 적어보았다.// 전통적인 방식private Dictionary pools = new Dictionary();// 최신 방식private Dictionary pools = new(); 두 문법의 차이점은?항목전통 방식최신 방식문법new Dictionary()new()특징타입을 모두 명시타입을 자동 추론지원 버전C# 1.0~C# 9.0 이상가독성타입이 확실히 보임더 간결하고 깔끔함 결론new()만 써도 왼쪽 타입을 기준으로 자동 추론Unity 2022.3.17f 이상에서는 안심하고 써도 됨

728x90