noname02
1. 포인터 프로그래밍을 하면 변수를 생성하죠. 변수의 값은 메모리에 저장이 됩니다. 메모리의 최소단위는 1byte입니다. 그리고 각 메모리는 주소값을 가지고 있습니다. int a=10; 을 선언했다고 하면, 10이라는 값을 저장하고 10이 저장된 메모리공간에 a라는 이름을 붙여줍니다. 그리고 이 메모리 공간은 int형입니다. 즉 4byte의 크기를 갖게 되는거죠 0000a(int) 0001 0002 0003 즉 이렇게 되있는겁니다. 왼쪽은 주소값이며(편의상 정의한 주소값입니다) 오른쪽은 변수의 이름입니다. a라는 변수는 int형이기 때문에 4byte크기를 할당받았죠. 주소값을 반환하는 연산자인 &를 아실겁니다. 위와 같은 상황에서 printf("%d",&a)이렇게 a의 주소값을 출력하라고 하면 0000..
함수도 변수라고 생각하면 된다.그러니까 함수의 이름도 사실은 변수인 것이다.마치 int a = 10;으로 하면 어떤 메모리공간에 a라는 이름이 할당되고 거기에 10이라는 값이 들어가서 a를 10처럼 사용할 수 있듯이 void Func(int a) { ... } ;로 함수를 선언하면 어떤 메모리공간에 Func라는 이름이 할당되고 호출하면 { ... } 를 수행하는 것이다.물론 Func만 호출한다고 될 리가 없다. 함수는 매개변수를 갖기 때문에 Func(); 와 같이 소괄호를 같이 넣어줘야 한다. 물론 매개변수도 넣어줘야 하고. 자 그럼 변수에는 포인터라는 개념이 있다.int a = 10;int *b = &a;이렇게 하면 b라는 변수공간에 a의 주소값이 들어가 있게 된다. 그런데 알다시피 b는 포인터변수이기..
++class; 의 형태나 class++; 의 형태나 operator++로 오버로딩을 한다.그럼 어떻게 구분하느냐? operator++(); 와 같이 매개변수가 없는 경우 전위증가고operator++(int); 와 같이 매개변수에 int키워드를 넣어주면 후위증가다.여기서 int는 그냥 단순히 전, 후위증가를 나타내는 키워드일 뿐 매개변수를 받는 것이 아니다.
Coroutine은 결국 메서드의 실행순서를 지연시킬 수 있다는 점에서 사용된다.원래 메서드는 한번 읽히면 해당 메서드가 종료될 때까지 쭈-욱 읽힌다.그런데 Coroutine을 사용하게 되면, 해당 메서드가 진행되다가 잠깐 Stop된다. 그리고 resume 조건에 따라 다시 돌아와서 처음부터가 아닌 중간부터 수행된다.이러한 Coroutine 메서드의 반환형은 무조건 IEnumerator 로 설정해야 한다.나도 정확히는 모른다. 어렴풋이 개념적으로만 이해하고 있어서 설명은 못하고, 해당 설명은 다른 글을 참고하면 될 것이다.여튼 그래서 Coroutine 메서드는 IEnumerator Method() { ... }의 형태로 정의한다. 메서드의 몸체에는 무조건 yield return 문이 와야 하는데, 이 y..
void Invoke(String name, float time)메서드, 호출, 반복 Invoke는 "name"메서드를 time초 뒤에 호출한다. MonoBehaviour 클래스에 정의된 함수이니 보통 Invoke로 그냥 사용하면 된다. void InvokeRepeating(String name, float time, float repeat_rate)메서드, 호출, 반복 InvokeRepeating은 "name"메서드를 time초 뒤에 호출하기 시작해서 repeat_rate 초 만큼 반복해서 호출한다. 이 역시 MonoBehaviour 클래스에 정의되어있다. void CancleInvoke(String name) "name"에 해당하는 함수의 Invoke를 취소시킨다. Repeating과 짝을 이룬다고 ..