2023/12/06

안석환·2023년 12월 6일
0

오늘의 코드

  1. ref
    ex)

    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 의 값을 참조하여 실제로 그 값을 바꾼다.

  1. out

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의 매개변수의 개수에 상관없이 값을 출력할 수 있다.

  1. Name: ""

호출하는 매개변수에 값을 지정해줄때 매개변수명 : 대입값 을 입력해주어 실행 시킬 수 있다.

오늘의 문제

오늘은 많은 작업을 했지만 벽돌깨기의 벽돌을 다 부수면 끝나는 코드를 작성하는 과정중 문제가 생겼다.

  1. 벽돌이 없는것을 알아도 벽돌생성 과정 이전에 벽돌이 없다 판단하고 게임을 종료하는 현상이 발생했다.

  2. 벽돌이 없는 것을 Null 값 처리하니 에러가 발생했다.

오늘의 해결

  1. isGameStart 라는 불값을 주어 Update 메소드 중 bool 값을 변경해주고 변경된 불값을 if문에 추가하니 문제가 해결됬다. (모든 Update 연산처리를 같이 한다 생각했을 때 if 에 도달하기 까지 시간을 번것 같긴하다 정확한 이유는 잘 모른다)

  2. Null 값대신 항삭 블럭의 수를 인지하고 있는 int[] 배열을 생성하여
    Update 시작시에 FindGameObjectWithTag를 사용하여 Brick태그를 달고 있는 모든 개체를 찾아서 배열에 입력하고
    .Lenght 를 이용하여 배열의 길이를 if 문에 집어넣었다. 생성된 CloneBlick 이 외에 하나더 같은 태그를 사용하고 있어서 .Lenght == 1 로 조정하여 작동 시켜서 문제를 해결했다.

오늘의 후기

팀 프로젝트 재밌고 배울 것도 많은데 조금 힘들다.

다시 의욕을 찾을 계기가 필요하다!

profile
안석환!

0개의 댓글