본문 바로가기

분류 전체보기

(45)
배열 / 정적 클래스 / 확장메서드 배열 / 정적 클래스 / 확장메서드 #define EXAMPLE_TYPE_ARRAY #define EXAMPLE_TYPE_STATIC_CLASS // 많이 써라 #define EXAMPLE_TYPE_EXTEND_METHOD // 많이 써라 ... public class Example_02 : MonoBehavior { public void Awake { #if EXAMPLE_TYPE_ARRAY //1. 평균적으로 사용하는 방법 int[] oValues = new int[5]; // 2. 1번보단 이걸 더 많이 쓰세요. int[] oOtherValues = new int[] { 1,2,3,4,5 }; var oStringBuilder = new System.Text.StringBuilder(); for(i..
[C#] $ (문자열 보간), Nullable Debug.LogFormat("데이터 출력 : {0}, {1}, {2}, {3}", numA, numB, numC, numD); Debug.Log($"데이터 출력 : {oValue},{oString}"); $: C# 6의 추가된 기능 문자열 보간(보간된 문자열을 식별하는 기능) {0}, {1}, {2} ... 과같이 서식항목들의 순서를 정해주는 Format() 방법과는 달리 문자열 보간은 string 안에 직접 변수 이름을 할당한다. C# Nullable 타입은 Null을 가질 수 없는 데이터 타입을 Null을 가질 수 있는 타입으로 새롭게 만든 타입이다. 선언 방법은 크게 두 가지. 1. 데이터 타입 찍어주기 2. Nullable 자체를 가져와주기 int nValue = null; => 당연히 오류 i..
C# 구조 엔진: 라이브러리의 집합 C# 언어의 문법을 숙지해야 하는 이유 유니티 엔진에서 기본적으로 스크립트는 대부분 C# 스크립트를 이용, 유니티 엔진의 활용성을 높이기 위해선 C#에 대한 지식이 필요 C / C++ 스타일로 C# 문법을 모르고 작성하는 것도 가능하지만 결국엔 한계에 부딪히게 된다. C# 프로그램 동작방식 C# 프로그램은 CLR(Common Language Runtime)이라는 자바의 가상 머신과 비슷한 프로그램 위에서 구동이 된다. C / C++ 언어와 달리 결과물이 컴퓨터가 바로 실행할 수 있는 실행 파일로 생성되지 않는다는 것을 의미한다. CLR(Common Language Runtime) 마이크로 소프트에서 개발한 가상 머신의 구성 요소(windows 전용) 기능은 크게 두 가지. 1. ..
Facade Pattern 클래스 간 공통적인 인터페이스가 있고 그것들을 하나로 묶어서 편하게 관리하기 위해 사용하는 패턴. 아.. 뭔가 다른 설명도 있는 듯 인터페이스가 꼭 없어도 되는데 블로그들에선 인터페이스가 꼭 있어야만 패턴이라 적어놨는데 잘못된거라고 하네 컴포넌트 이것저것 넣는 것도 퍼사드 패턴임
Command Pattern 커맨드 패턴: 무엇을 할지에 대한 정보. // ex. 불 켜지는 기능을, 알람이 울리는 기능을. 전략 패턴: 어떻게 할지에 대한 정보. 이렇게 했다가 저렇게 했다가 바꿀 수 있음 전략이 바뀜 // ex. 친절한 수업 스타일로, 엄격한 수업 스타일로.
Interface 상속과 비슷, 반드시 그 기능을 구현해야 하는 의무가 생긴다. 추상 클래스는 다중상속 불가능, but 인터페이스는 다중 상속이 가능하다! 형식: 대문자 i(I)로 시작. public interface ISampleInterface 이런 식으로 적어주면 된다.
반복자, 캡슐화 정해진 순서A로 반복시킬 수 있는 놈!! 즉 도구를 쓰는 놈 enumerable 정해진 순서A로 반복하는 도구 enumerator enumerable은 enumerator를 갖고 있음. foreach같은 반복자 애들은 다 enumerable이고 enumerator를 갖고 있음 foreach는 형태가 어떻든 그냥 다음! 다음! 다음! 내놔! 하면서 처리함 IEnumerable를 상속받은 intList를 가져다 쓰고 또 그 안에서 GetEnumerator를 통해 IEnumerator를 상속받은 애를 사용함. foreach(기능을 사용하는 애)가 알아야 하는 건 안에 구현된 내용이 아니라 사용할 수 있는 형태! 이렇게 내부의 기능의 구현을 숨기면서 사용자에게 인터페이스만을 제공해주는 것을 캡슐화라고 한다. C..
[Unity] Material 랜덤 색 변경 Random.Range로 색을 뽑아서 메테리얼 색을 변경하려 했다. gameObject.GetComponent().color = new Color(valueA/255f, valueB/255f, valueC/255f); 안된다.. 이렇게 쉬웠으면 좋았을텐데 gameObject.GetComponent().material.color = new Color(valueA/255f, valueB/255f, valueC/255f); Renderer로 가져왔었어야 했다.