본문 바로가기
반응형

유니티 공부152

C# - const와 readonly const const 값은 변수가 선언될 때 초기화 되며 이후에는 변경할 수 없다. 또한 자동으로 static의 특성을 갖는다. 마지막으로 const는 선언과 동시에 초기화 되어야한다. 만약에 안될 경우 컴파일 에러가 뜬다. const int pi = 3.14; readonly 초기화 이후에는 변경할 수 없지만 선언할 때 또는 클래스의 생성자에서 값을 할당할 수 있다. 자동으로 static되지 않는다. 마지막으로 변수는 선언시 초기화할 필요가 없이 생성자에서 초기화 할 수 있다. 이 변수는 런타임시 할당된다. public class Piggy { public readonly static int piggy_age; public readonly int piggy_weight; static Piggy() { .. 2024. 4. 9.
GitHub - 최근 커밋 수정하기 (amend 사용) 커밋을 잘못 올리고 push를 해버렸다.. 그래서 어떻게 수정하는지 찾아보다가 Amend라는 것을 사용하면 된다는 것을 알게되었다! 01 git log을 통해 commit 내용 확인 위에 있는 로그일 수록 최근 로그이다. amend는 가장 최근의 commit만 수정할 수 있으므로 내가 잘못올린 commit이 제일 최근 커밋인지 다시 한 번 확인해 보는 것이 좋다. $ git log 02 가장 최근 commit 내용 수정하기 $ git commit --amend -m "수정할 내용" 03 git log log가 변경되었는지 체크하기 $ git log 04 push 하기 아래와 같이 git push를 했더니 rejected됐다고 에러가 나왔다. $ git push 왜 이런에러가 뜰까 찾아봤더니 원격 저장소와.. 2024. 4. 4.
C# - 클래스(Class)와 구조체(Struct)의 차이 01 가장 큰 차이점은 상속 가능의 여부 구조체는 상속이 안된다. 그렇다면 구조체가 필요없는거 아닐까? C와 C# 간의 호환성 때문에 C#에서도 C코드를 돌릴 수 있도록 남겨둔 것이다. 02 타입 여부 구조체는 값 타입, 클래스는 참조 타입이다. 간단한 예시로 알아보자 재산이 많은 할아버지가 자손에게 재산을 상속하고 싶은데 알고보니 재산이 구조체로 선언되어있어서 재산을 상속할 수 없다. 아래와 같이 코드를 작성하면 오류가 난다. struct Father { public void fathermoney() { } } struct Son : Father { public void sonmoney() { } } class main { public static void Main() { Father father; f.. 2024. 3. 29.
C# 문법 - 값 타입(Value type)과 참조 타입(Reference type) 값 타입(Value type) 스택에 저장된다. 그러므로 힙에 객체로 할당되지 않아서 GC가 관리 하지 않고 포인터로 가리켜지도 않는다. 선언되는 즉시 메모리에 할당 따라서 생성과 동시에 값을 할당할 수도 있다. int a = 10; c#에서 값타입에는 int, 부동 소수점, double와 같은 원시 타입과 구조체 참조 타입(Reference type) 값을 별도의 메모리 공간(heap)에 저장하고 메모리의 주소를 변수명과 함께 stack에 저장한다. 참조 타입은 새로운 값을 할당하기 위해서는 new를 통해 선언을 해주어야한다. 참조 타입에는 객체, 배열, 문자열,클래스 등이 있다. 코드 예시 예를 들어서 우리집 클래스가 있다고 해보자 class myHome { void room() { } } 만약 객체.. 2024. 3. 29.
Unity - Assets\TextMesh Pro\Examples & Extras\Scripts\VertexZoom.cs(153,44): error CS0029: Cannot implicitly convert type 'UnityEngine.Vector4[]' to 'UnityEngine.Vector2[]' 오류 해결 방법 만들었던 포토폴리오를 리팩토링 하기 위해서 버젼이 높아진 유니티에서 열어봤더니 제목과 같은 에러가 떴었다. Assets\TextMesh Pro\Examples & Extras\Scripts\VertexZoom.cs(153,44): error CS0029: Cannot implicitly convert type 'UnityEngine.Vector4[]' to 'UnityEngine.Vector2[]' 이는 패키지가 업데이트 됨에 따라 SRP(Scriptable Render Pipeline)와의 호환성 이슈로 생긴 것 이다. SRP는 Unity에서 그래픽 렌더링 파이프라인을 완전히 제어하고 사용자 지정할 수 있게 해주는 시스템이다. 그러므로 변경 사항이 있었을 때 일반적으로는 기존의 프로젝트에 영향을 줄 수.. 2024. 3. 21.
Unity - 스트립트간 데이터 업데이트 문제(bool 값 업데이트가 적용이 안돼요) 문제 상황 퀘스트 체크하는 부분에서 문제가 생겼다. QuestManager 스크립트의 bool isComplete, isQuesting를 통해 퀘스트가 진행중인지 완료중인지 체크를 하였다. 그리고 퀘스트가 완료된 경우 npc의 Dialogue가 퀘스트 완료버젼을 출력하지 못하고 있었다. 간단히 말하자면 bool iscomplete와 bool ismoving의 변수내용이 업데이트 내용이 momDialogue에 반영이 안되는 문제이다. 해결 방법 QuestManager스크립트와 Dialogue스크립트가 같은 오브젝트 위치에 있어서 생긴 문제였다! 같은 게임 오브젝트에 스크립트를 연결하는 것은 일반적으로 각 스크립트가 독립적으로 실행될 수 없을 때나 상호작용할 필요가 없을 때에 적합한 방법이다. 그러므로 우리.. 2024. 3. 20.
반응형