목록프로그래밍/C# (11)
게임 프로그래밍
Array를 list로 변환하는 방법에는 몇가지가 있습니다. 1. List list = ints.OfType().ToList(); 2. List list = new List(new int[] { 1, 2, 3, 4, 5}); 3. list.AddRange(new int[] { 1,2,3,4,5 } );

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public override void OnInspectorGUI() { base.OnInspectorGUI(); grid = (Grid)target; EditorGUILayout.BeginHorizontal(); string[] ObjectOptions = new string[grid.prefabsList.Length]; string[] selectOptions = { "그리기", "지우기" }; for (int i = 0; i

더블 버퍼링에 개념에 대해서 알아볼려고 합니다. 일반적으로 이미지를 화면에 그릴때 이전 프레임에 있던 이미지를 지우고 새로 그리기 때문에 더블 버퍼링 기법을 사용하지 않으면 깜빡임 현상이 나오게 됩니다. 이를 Flickering(깜빡임) 현상이라고 합니다. 더블버퍼링이란 위 사진처럼 화면을 그릴때 화면에 바로 이미지를 그리는 것이 아닌 Front Buffer 와 Back Buffer를 나누고 Back Buffer에 다음에 그릴 이미지를 먼저 그린후 그 다음 미리 그려진 Back Buffer를 이용하여 화면에 그리는 기법입니다. 이를 통해 깜빡임 현상을 없앨수 있습니다. 그렇다면 c#에서는 더블버퍼링을 어떻게 사용할수 있을까요? 간단하게 지원하기 때문에 쉽게 만들 수 있습니다. 아래의 코드를 폼이 로드가 ..
C#에서는 확장 메서드(Extension method)라는 기능이 있습니다. 기존에 만들어진 클래스,구조체를 직접 변경하지 않고 기능을 확장해 사용하는 것입니다. 이는 int, float와 같은 데이터타입이나 이미 만들어진 클래스에도 적용이 가능합니다. 확장메세드를 쓰기 위한 몇가지 규칙이 있습니다. 1. 정적 클래스의 멤버로 정의해야한다. 2. 첫번째 매개변수에는 this 키워드가 들어가야한다. 1 2 3 4 5 6 7 8 9 10 11 namespace ExtensionMethods { public static class MyExtensions { public static int WordCount(this String str) { return str.Split(new char[] { ' ', '.',..
c# 에서는 Enum값에 요소를 반복해서 쓸수 있다. ex) foreach (GUNKIND kind in Enum.GetValues(typeof(GUNKIND))) { Debug.log(kind); } 이렇게 Enum.GetValues를 통해서 각각 요소를 접근할수 있다.
c#에서는 as 와 is 라는 키워드가 있다. 둘다 형변환(캐스팅)과 관련된 키워드라고 생각 하면 쉽다. 우선 as 에 대해서 알아보자. 보통 다른 언어에서 형변환을 할때 (type)value 이러한 형태를 자주 썻을것이다. as는 이러한 기능과 똑같이 작동한다. 그러나 한가지 다른 점은 as는 형변환을 할수 없는 상태면 컴파일 오류가 나게 된다. 그러므로 as를 쓰는것이 좀 더 좋을것이다. 다음 is에 대해서 알아보자. as에 경우에는 형변환된 결과를 리턴시킨다. 그러나 is에 경우에는 형변환이 가능한지 불가능한지에 대해 리턴을 한다. 가능하다면 true, 불가능하다면 false인것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2..
1. params란? 간단하게 매개변수의 개수 제한 없이 만드는 거라고 생각하면 된다. 2. 조건 params 키워드를 사용하면 가변 개수의 인수를 사용하는 메서드 매개 변수를 지정할 수 있습니다. 매개 변수 선언이나 지정된 형식의 인수 배열에 지정된 형식의 쉼표로 구분된 인수 목록을 보낼 수 있습니다. 인수를 보내지 않을 수도 있습니다. 인수를 보내지 않는 경우 params 목록의 길이는 0입니다. 메서드 선언에서 params 키워드 뒤에는 추가 매개 변수가 허용되지 않으며, params 키워드 하나만 메서드 선언에 사용할 수 있습니다. params 매개 변수의 선언된 형식은 다음 예제와 같이 1차원 배열이어야 합니다. 그렇지 않으면 컴파일러 오류 CS0225가 발생합니다. 3. 사용 예제 1 2 3 ..

우선 CSV 파일이 먼지 알아보자. 간단하게 말해서 , 로 구분 되는 데이터이다. XML, JSON 등 여러 데이터 저장 포맷이 있는데 csv를 쓰는 이유는 간단하기 때문일것이다. 하지만 간단하기 때문에 문제도 조금 있다. 일단 데이터 오염에 취약하다. 데이터를 그저 ,로 구분 하기 때문이다. 그리고 데이터에 ,를 넣기가 난감하다. 일단 알아볼것은 C#으로 csv파일을 어떻게 만들수 있느냐 이다. 사실 엄청 간단하다. 1 2 3 4 5 6 7 8 9 10 using (StreamWriter wr = new StreamWriter("path")) { wr.WriteLine("#TYPE,MoveSpeed"); foreach (var data in datalist) { wr.WriteLine("{0},{1}"..