목록분류 전체보기 (40)
A-Dyu의 개발 일기장
값의 집합을 나타내는 클래스입니다.집합은 중복 요소가 없고 요소가 특정 순서가 없는 컬렉션입니다.생성자생성자는 인자가 없는 생성자와, 집힙을 미리 Array로 초기화할 수 있습니다.HashSet hashSet1 = new HashSet(); //빈 집합 생성int[] array = { 1, 2, 3, 1, 4 };HashSet hashSet2 = new HashSet(array); //생성 시 요소를 추가함요소 추가/제거Add메서드를 사용해 집합 요소를 추가하고, Remove메서드를 사용해 요소를 제거할 수 있습니다.hashSet1.Add(1);hashSet1.Remove(1);값이 포함되어 있는지hashSet1.Contains(1);//값이 포함되어 있는지집합 메서드HashSet set = new Ha..
유니티를 사용하다 완성 후 빌드할때 이 오류가 떳다.난생 처음보는 오류에 구글에 검색해보았더니 꽤 오래전부터 있던 전통적인? 오류인것 같았다.https://discussions.unity.com/t/type-has-an-extra-field-of-type-in-the-player-and-thus-cant-be-serialized-error/678423여기에서 나온대로 원래 클래스 안쪽에 있던 열거형을 바깥에 빼봤더니 잘 된다.다시 넣어도 잘 된다.?ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
프로그래밍을 할 때 각각 다른 변수가 하나의 주소값(레퍼런스값)을 가리키는지 비교해야 할 때가 있다.그럴 때 Object.ReferenceEquals 메서드를 쓰면 된다.(참고로 ReferenceEquals는 정적 메서드다)List list = new List();List list2 = list;Console.WriteLine(Object.ReferenceEquals(list, list2));//True

유니티에서 old input을 사용하다가 new input system으로 바꾸자, 이런 오류가 일어났다. InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings. 해결 방법은 간단하다. Edit에서 Project Setting창을 열고Player > Other Setting을 클릭하면 이런 창이 나온다많은 설정들이 있는데 우리는 Configuration 카테고리에 들어가 Active Input Handling.을 찾으면 된다.아마 Input M..
리스트를 복사할 때,단순히 =연산자를 사용하면 복사되는게 아닌 참조가 되어 얕은 복사가 된다.List list = new List();List copyTo = list;//list를 수정하면 같은 객체를 참조하기 때문에 같이 값이 바뀐다. 그럴 땐, ToList메서드를 사용하면 된다.List list = new List();List copyTo = list.ToList(); 만약 리스트가 아닌 배열로 바꾸고 싶다면, ToArray메서드를 사용하면 된다.List list = new List();string[] copyTo = list.ToArray();
C#을 사용할 때 문자열 양 끝쪽의 공맥을 제거하려면 Trim메서드를 사용하면 된다.string str = " test";//test 앞에 공백이 있음Console.WriteLine(str);//> teststring strTrim = str.Trim();//양쪽의 공백 삭제Console.WriteLine(strTrim);//>test
만약 특정 클래스의 상속을 금지하고 싶으면 sealed 키워드를 사용하면 된다.private sealed class Parent //sealed 키워드를 이용한 상속 금지{ //멤버 필드}sealed 키워드를 이용한 클래스를 상속받으려 하면 CS0509 예외가 발생한다.private sealed class Parent //sealed 키워드를 이용한 상속 금지{ //멤버 필드}private class Child : Parent//CS0509 :'Child': sealed 형식 'Parent'에서 파생될 수 없습니다{ //멤버 필드}

유니티에서 태그를 비교할 때 ==연산자를 많이 사용한다.using UnityEngine;public class Test : MonoBehaviour{ private void OnCollisionEnter(Collision collision) { //플레이어랑 충돌할 시 if (collision.gameObject.tag == "Player") { Debug.Log("플레이어랑 충돌하였습니다."); } }}하지만 이렇게 비교하면 tag는 변수가 아닌 프로퍼티이기 때문에 string을 복사,생성 후 메모리에 할당한다.그렇기 때문에 비교 후 가비지가 발생하고,결국 GC에 의한 성능 저하가 발생한다. 하지만 CompareTag 메서..