static void Swap(ref int a, ref int b){
}
int x = 3
int y = 4
Swap (ref x, ref y)
ref는 int a에 복사하여 관리하지 않고 int x, y 의 값을 참조하여 실제로 그 값을 바꾼다.
static void Remainder(ref int a, ref int b, out int quatient, out int remainder){
quatient = a/b;
remainder = a%b;
}
int a = 3
int b = 4
int c;
int d;
Remainder(ref a, ref b, out c, out d)
ref 키워드와 유사하나 out은 각 매개변수에 결과값을 넣어주는 방식이다.
3.Params
ex)
int sum(params int[] args){
}
sum의 매개변수의 개수에 상관없이 값을 출력할 수 있다.
호출하는 매개변수에 값을 지정해줄때 매개변수명 : 대입값 을 입력해주어 실행 시킬 수 있다.
오늘은 많은 작업을 했지만 벽돌깨기의 벽돌을 다 부수면 끝나는 코드를 작성하는 과정중 문제가 생겼다.
벽돌이 없는것을 알아도 벽돌생성 과정 이전에 벽돌이 없다 판단하고 게임을 종료하는 현상이 발생했다.
벽돌이 없는 것을 Null 값 처리하니 에러가 발생했다.
isGameStart 라는 불값을 주어 Update 메소드 중 bool 값을 변경해주고 변경된 불값을 if문에 추가하니 문제가 해결됬다. (모든 Update 연산처리를 같이 한다 생각했을 때 if 에 도달하기 까지 시간을 번것 같긴하다 정확한 이유는 잘 모른다)
Null 값대신 항삭 블럭의 수를 인지하고 있는 int[] 배열을 생성하여
Update 시작시에 FindGameObjectWithTag를 사용하여 Brick태그를 달고 있는 모든 개체를 찾아서 배열에 입력하고
.Lenght 를 이용하여 배열의 길이를 if 문에 집어넣었다. 생성된 CloneBlick 이 외에 하나더 같은 태그를 사용하고 있어서 .Lenght == 1 로 조정하여 작동 시켜서 문제를 해결했다.
팀 프로젝트 재밌고 배울 것도 많은데 조금 힘들다.