목록C# (57)
STIKA
접근제한자의 종류와 차이 클래스 외부에서 내부로의 접근을 제한하기 위해 사용한다 public : 클래스 외부에서 클래스에 자유롭게 접근할 수 있다 private : 클래스 외부에서는 사용할 수 없고 클래스 내부에서는 접근이 가능하다 protected : 자식 클래스에서 접근할 수 있다 internal : 같은 어셈블리내에서는 접근 가능하다 protected internal : 같은 어셈블리와 다른 어셈블리의 상속받은 클래스 private protected : 같은 어셈블리와 같은 어셈블리 내의 상속받은 클래스
배열 , List, ArrayList, Dictionary 배열은 정적배열로 이름 하나에 같은 자료형 타입인 여러개의 변수를 관리하는 것 List는 배열과 같이 Data Type을 선언 한 뒤에 변수를 관리하며, 내부적으로 동적배열을 사용 ArrayList는 List와 거의 유사하게 배열의 크기가 변경되는 특징을 갖고 동작합니다. 하지만, Data Type을 선언하지 않으며, 서로 다른 타입의 값도 추가 할 수 있습니다. Dictionary는 key와 Value의 값을 세트로 다루는 배열 "연관 배열"이며, List와 다르게 Key값을 사용하여 Value 값을 얻을 수 있습니다. 어떤 데이터를 검색할 때 1의 시간복잡도를 가짐. 추가 List 제너릭 타입으로 박싱 언박싱이 필요없어 타입 안정성이 좋다. ..
박싱과 언박싱 박싱은 값 형식의 데이터를 참조형식의 데이터로 변환하는 것 언박싱은 참조 형식의 데이터를 값 형식의 데이터로 변환하는 것 하지만 참조형식을 값형식으로 바꾸는 행위 자체가 언박싱은 아니다 박싱이 있어야지만 언박싱이 존재 스택 메모리의 값을 복사하여 힙 메모리에 할당시키는 작업을 하면서 시간과 공간에 오버헤드 발생해 성능에 문제가 생길 수 있다 불필요한 변환은 하지 않아야 한다
가비지 컬렉션 메모리를 관리하는 방법 중 하나이며, 프로그래머가 동적으로 할당한 메모리 영역 중 더 이상 쓰이지 않는 영역을 주기적으로 검사하여 삭제하는 기능입니다. +세대 가비지 컬렉터 메모리를 할당 후 제대로 해제하지 않으면 메모리 누수가 일어나기 때문에 해제를 반드시 해줘야한다 C/C++에서는 직접 해제를 해줘야 하지만 C#에서는 가비지 컬렉터가 대신 해제를 해준다 런타임에 힙영역에 메모리가 계속 쌓이다가 어느 시점에서 가비지 컬렉터가 사용하지 않는 메모리 공간을 자동으로 해제하고 재할당이 가능하도록 만들어 준다 가비지 컬렉터도 또 하나의 프로세스여서 CPU와 메모리를 소모하므로 너무 자주 호출되게 하면 안된다 가비지 컬렉터 피하기 메모리 할당 최소화하기 오브젝트 풀 사용하기 가비지 컬렉션 메소드 ..
ref와 out의 차이 ref와 out은 변수를 참조 형태로 전달하는데 사용된다 ref는 기존 변수를 메서드에서 수정하려 할 때 사용한다 매개변수로 전달하기 전에 반드시 초기화를 해야하지만, 무조건 변수를 할당하지는 않아도 된다 레퍼런스로 전달해서 변수에 직접 참조한다 복사가 일어나지 않게 해서 시간과 메모리를 절약할 수 있다 out은 메서드 내에서 생성된 값을 반환할 때 사용한다 처음에 초기화하지 않아도 되지만 메서드 안에서 변수에 반드시 할당하고 사용해야한다 out이 써지면 어디선가 무조건 사용이 됐구나를 알 수 있고 가독성을 높여주고 작성해야하는 코드의 양을 줄여줄 수 있다
float과 int의 표현 가능한 수의 범위 차이 int와 float의 자료형 크기는 4Byte지만 값을 저장하는 방법이 달라서 표현 가능한 수의 범위가 다르다 int는 1bit만 부호를 표현하고 나머지 전부 수를 표현하는데 float는 1bit가 부호부, 1byte는 지수부, 나머지 23bit는 가수부로 나뉜다 가수부 - 숫자의 정수 부분 지수부 - 소수점의 위치 부분을 지수부라고 한다 부동소수점 - 소수점의 위치를 고정하지 않고 그 위치를 나타내는 수를 따로 적는 것을 말한다
24.03.23 Sat ❤️ TIL [51] Today I Learned ✏️ 작업 내용 ✔️ ✔️ ✔️ 두둥 온갖오류와싸움 캐릭터별 애니메이션 📝 오늘의 마무리 ✏️ 스스로 어제보다 한 발 더 나아갔다는 것을 자각하기 ✏️ TIL을 쓰기 위해서라도, 오늘 반드시 단 하나라도 배우기 ✏️ 꾸준히 기록을 남기는 습관 가지기
24.03.22 Fri ❤️ TIL [50] Today I Learned ✏️ 작업 내용 ✔️ ✔️ ✔️ 두둥 애니메이션 잘랐고 오늘 합칠꺼고 이제 애니메이션겹치기 물어봐야지.. 애니메이션 스피드를 0으로하면 애니메이션 값들이 초기화가됨 작업 중에 갑자기 NullReferenceException이 떠서 확인해보니 에디터 상에서 오류가 발생하고 있었다. 찾아보니 UnityEditor.Graphs.DLL에 있는 Unity 코드의 오류라고 한다. 보통 애니메이터의 삭제 및 변경을 할 때에 발생하는 오류라고 한다. 해결방법으로는 유니티 프로젝트를 재시작하면 된다. animator 를 components로 받아옴 배열로 들어오더라 ExitTime = 0 아래바가 왼쪽에 딱붙음 = 애니메이션 전환이 빠르게됨 왼쪽바..
24.03.21 Thu ❤️ TIL [49] Today I Learned ✏️ 작업 내용 ✔️ ✔️ ✔️ 두둥 앵커 = 배의 닻 sortingOrderSetting만듬 시네머신 맵트리거 씬체인지뒤집어엎음 플레이어무브먼트에서 조건update추가 시네머신은 폴리곤콜리더로가능 룩엣하면 바라보는거 팔로우 따라다니는거 바디에서 스무스같은거 가능 confiner추가하는건 virtualcamera컴포넌트 제일밑에 addExtension에서 추가가능 그러고 콤피너에 콜리더달아주기 내일은 애니메이션멈추기하기 집씬바뀌고다시팜씬돌아오고땅정보같은거 어케넘기지 📝 오늘의 마무리 ✏️ 스스로 어제보다 한 발 더 나아갔다는 것을 자각하기 ✏️ TIL을 쓰기 위해서라도, 오늘 반드시 단 하나라도 배우기 ✏️ 꾸준히 기록을 남기는 습..
24.03.20 Wed ❤️ TIL [48] Today I Learned ✏️ 작업 내용 ✔️ ✔️ ✔️ 두둥 씬매니저에 그냥 조건달고 다시 트리거에도 붙임 스프라이트에디터로 타일자를땐 셀사이즈 스프라이트자를땐 그냥 오토.. 귀찮아도 이름다는게 장기적으로편할듯 스프라이트 한번에 묶여있는거에서 바꾸면 복붙한거도 바뀜 📝 오늘의 마무리 ✏️ 스스로 어제보다 한 발 더 나아갔다는 것을 자각하기 ✏️ TIL을 쓰기 위해서라도, 오늘 반드시 단 하나라도 배우기 ✏️ 꾸준히 기록을 남기는 습관 가지기