Programming/프로그래밍 19

두개의 다른클래스를 비교하여 제거하기.

두 개의 클래스를 가진 리스트 A와 B가 있고, A에 있는 항목 중 B에 있는 항목과 일치하는 것을 제거하여 새로운 리스트를 만들려면 다음과 같은 C# 코드를 사용할 수 있습니다. 이 코드에서는 LINQ를 사용하여 중복 항목을 제거합니다. 예를 들어, 두 개의 클래스 ClassA와 ClassB가 있다고 가정하고, List와 List에 데이터가 저장되어 있다고 가정합니다. 그리고 c와 d는 비교하려는 속성이라고 가정합니다. using System; using System.Collections.Generic; using System.Linq; public class ClassA { public int c { get; set; } // 다른 속성들... } public class ClassB { public ..

2개의 클래스 리스트 합치기.

두 개의 같은 클래스의 다른 데이터를 가진 리스트를 합치고, 클래스 내부의 A 값이 동일한 경우 하나만 남기고 합치는 작업을 하려면 LINQ의 GroupBy 함수와 Select 함수를 활용할 수 있습니다. 아래 예시 코드로 설명하겠습니다. 예를 들어, 다음과 같은 클래스가 있다고 가정합니다: class Item { public string A { get; set; } public int B { get; set; } } 그리고 합친다. using System; using System.Collections.Generic; using System.Linq; class Item { public string A { get; set; } public int B { get; set; } } class Program ..

[unity] 파일(또는 오브젝트) 선택시 커스텀 윈도우의 업데이트 방법 2가지

커스텀 윈도우를 만들면 해당 커스텀 윈도우가 선택되어져 있는 상태에서만 업데이트가 된다. OnGUI() 함수에 보통 버튼이나 라벨등의 UI 를 그려주는 코드를 짜게 되는데 하이어러키 창이나 프로젝트 창에서 아이템을 선택했을때 바로 커스텀 윈도우의 상황을 바꿔주고 싶을 경우가 있을것이다. 보통은 다른창에 선택이 되어있으면 커스텀 윈도우는 업데이트를 하지 않기 때문에... 첫번째 방법으로는 윈도우 시작시 업데이트 함수를 넣어주는게 있다. public static void ShowWindow() { var window = EditorWindow.GetWindow(typeof(ContinuousUpdateWindow)); EditorApplication.update += window.UpdateWindow; }..

[unity] 커스텀 윈도우를 다른 윈도우의 탭으로 넣기.

커스텀 윈도우를 만드는 방법은 아래 포스팅을 참고하자. [Unity] 커스텀 윈도우 만들기 유니티 상에서 툴을 만들기위해 커스텀으로 윈도우를 만들수 있다. 새로운 클래스를 만들어 아래코드처럼 작업하면 메뉴를 통해 커스텀 윈도우가 생성된다. using UnityEditor; public class MyWindow : Edit leeusin.tistory.com 따로 커스텀 윈도우가 뜨는 것도 괜찮지만 SceneView나 커스텀 윈도우에 탭형식으로 들어가고 싶을수도 있다. 윈도우 생성 함수에서 아래처럼 사용하면 새로운 창이 뜨는것이고. EditorWindow.GetWindow(typeof(MyWindow)); 아래처럼 사용한다면 내창을 Scene창에 탭형태로 붙히겠다는 게 된다. EditorWindow.Ge..

[Unity] 커스텀 윈도우 만들기

유니티 상에서 툴을 만들기위해 커스텀으로 윈도우를 만들수 있다. 새로운 클래스를 만들어 아래코드처럼 작업하면 메뉴를 통해 커스텀 윈도우가 생성된다. using UnityEditor; public class MyWindow : EditorWindow { // Add menu item named "My Window" to the Window menu [MenuItem("Window/My Window")] // 바로 아래 함수가 메뉴에서 호출된다. public static void ShowWindow() { //Show existing window instance. If one doesn't exist, make one. EditorWindow.GetWindow(typeof(MyWindow)); // 윈도우를..

NGUI - UIInput에 선택된게 있는지 확인하는법.

UNITY 에서 보통 어떤 입력을 통해 뭔가를 하게 될때 아래와 같은 식으로 된다. if (Input.GetKey(KeyCode.W)) POS.y = 100.0f; if (Input.GetKey(KeyCode.A)) POS.x = -100.0f; if (Input.GetKey(KeyCode.S)) POS.y = -100.0f; if (Input.GetKey(KeyCode.D)) POS.x = 100.0f; 해당 코드처럼 키에따라 각 위치를 설정해주는 코드이다. 그런데 이렇게 코딩을 해주면 NGUI의 INPUTFIELD에서 글을 작성할때도 적용이된다. 이 부분을 막아주려면 아래와 같이 하면된다. if (UIInput.selection == null ) { if (Input.GetKey(KeyCode.W))..

[C++] string 문자열 입력받기

C++스러운 코드 #2 : 문자열을 입력받는 12가지 방법 문자열 입력받는 방법에 대한 방법론에 대한것이 궁금하다면 위 링크를 따라가보면 될것이다. 나는 조금다른 문제에 부딛혀 이 포스팅을 써본다. 기본적으로 std::cin 을 통해 입력을 받을때에는 아래와 같이 사용한다. int x; float a; cin >> x >> a; 다음은 문자열 string str; cin >> str; cout > 연산자에서는 공백문자일때 입력을 끊게 된다. 따라서 str 에는 Hello? 만 저장되는 것이다. 방법은 getline 함수 사용. string str; getline(cin,str); cout x; getline(cin,str); cout

비주얼 스튜디오 인텔리센스 완료모드

제목이 좀 우스꽝스럽고 이상하지만 뭐라고 설명하기가 좀 힘들다. 쭉 잘 써오던 비주얼 스튜디오의 인텔리센스가 다소 이상해졌다. 원래 아래 코드처럼 몇단어를 쓰면 자동으로 선택이 되어졌었다. 그런데 어느순간부터인지 이처럼 선택지까지 가긴 하지만 선택이 되지 않는 상태로 되어있었다. 불편한것은 1번 처럼 선택이 되어있다면 엔터를 쳐서 바로 적용시킬수 있었지만 2번처럼 되어있는 경우라면 방향키로 선택이 되도록 해줘야해서 상당히 귀찮아졌다. 열심히 구글링 한 결과 편집->IntelliSense->완료모드 설정/해제 (Ctrl+Alt+Space) 를 해주면 된다. 작업도중 언젠가 단축키를 잘못눌렀거나 해서 해제가 되었었나보다. 옵션쪽엔 아무리 뒤져도 모르겠어서 정말 힘들었다. 자동선택 오류!!!