
[내일배움캠프]
요즘은 미니 프로젝트를 진행하며 다른 팀원이 작성한 스크립트를 보면서 학습을 하고 있다.
예를 들면 이전 TIL에서 작성했던 enum 과 switch가 있다.
그것을 정리했던 것처럼 오늘도 다른 팀원이 작성한 스크립트를 보면서 검색등을 통해 학습을 진행했다.
// 새로운 방식, 카드 생성하고 원하는 위치에 뿌리기
endV2 = new List(); // 도착 지점 저장용 배열
startRot = new List(); // 시작 회전 값 저장용 배열
tmpG = new List(); // 카드 오브젝트 저장용 배열
StartPosA = new List(); // 시작 지점 저장용 배열
// 또 다른 방식
for (int i = 0; i < cardCnt; i++)
{
tmpG.Add(Instantiate(card, this.transform));
// 배치 위치 지정하기
float x = (i % 4) * 1.4f - 2.1f;
float y = (i / 4) * 1.4f - 3.0f;
endV2.Add(new Vector2(x, y));
// 카드의 시작 위치는 펼져진 모습으로
float tmpR = 0.6f;
float tmpTheta = 180 / (cardCnt - 1) * i * Mathf.Deg2Rad;
tmpG[i].transform.position = new Vector2(0f + tmpR * Mathf.Cos(tmpTheta), -5f + tmpR * Mathf.Sin(tmpTheta));
StartPosA.Add(tmpG[i].transform.position);
// 시작 회전 배열에 넣어주기
startRot.Add((float)i * 10 - 45f);
// 시작 회전 게임 오브젝트에 설정하기
tmpG[i].transform.Rotate(0f, 0f, startRot[i]);
Card tmpCard = tmpG[i].GetComponent<Card>();
// 카드에 인덱스, 사진 등 세팅해주기
tmpCard.Setting(arr[i]);
// 카드 애니메이션 재생 중지하기
tmpCard.anim.speed = 0f;
// 첫번째 카드가 가장 위로 가게 하기
tmpCard.backSprite.sortingOrder = 20 - i;
tmpCard.backCanvas.sortingOrder = 20 - i;
}
위 스크립트는 카드를 담당했던 팀원이 작성한 스크립트이다.
위 내용에서 이전에 학습했던 부분은 for 구문이 있지만, 기존의 배웠던 항목과 달라진 부분은 for 구문에서 조건문이 들어가는 부분이다. 기존의 학습했던 내용에는 정수가 들어갔지만 이 스크립트에는 변수가 들어가서 조건을 만들어주는걸 알수 있다.
위의 tmpCard.Setting(arr[i]); 이 문장에서 tmpCard는 카드 하나를 나타내는 오브젝트이다.
그리고 그 다음에 나오는 Setting(arr[i])은 카드에 필요한 정보를 넣어주는 함수로서, 이를 해석하면 카드 하나에 필요한 정보를 넣어줘라 라는 의미라고 볼수 있다. 즉 주석에 쓰여있는 카드에 인덱스, 사진 등의 데이터를 넣어누는 코드이다.
그 아래의 tmpCard.anim.speed = 0f; 는 위의 해석을 참고해서 해석을 진행하면,
카드 하나에 붙어있는 애니메이션의 속도를 0, 즉 멈춘상태로 해라 라는 의미가 된다.
그 다음 문장들인
tmpCard.backSprite.sortingOrder = 20 - i;
tmpCard.backCanvas.sortingOrder = 20 - i;
는 위의 주석처리 된것을 참고하여 해석을 진행하면
직역을 했을때 카드 한장에, 뒤 이미지가, sortingOrder 한게 20 - i다 라고 해석이 된다. 이걸 주석을 보면서 이해를 하려고 하면, 처음에는 이해가 잘 되지 않았다. 그래서 검색을 해서 알아본 결과, sortingOrder 라는건 오브젝트, 여기서는 카드 이미지나 UI, 가 화면에 겹칠때 어떤게 위에 보일지를 정하는 숫자라고 한다. 그럼 이정보를 바탕으로 다시 해석을 진행하면, 카드 한장에, 뒤 이미지가, 어떤게위에 보일지를 정하는 숫자가 20 - i 다 가 된다. 여기서 20 - i 는 여러장의 카드가 있을때, i가 0인(즉 첫번째인)카드가 20, 그 다음 카드는 19,... 이런식으로 순서를 정하는것, 즉 첫번째 카드가 가장 위에 가게 하는 순서이다.
두번째는 뒤 캔버스, 즉 UI이기 때문의 바로 위의 뒤 이미지 와 같은 형식으로 처리를 해준것이다. 그러지 않으면 카드가 제대로 보이지 않는다.
오늘 미니프로젝트 진행
오늘 미니프로젝트 진행에서 나는 영상연출 편집과 이미지 작업, 그리고 엔딩씬 이미지 작업을 담당했다.
오늘 수정한 내용은 엔딩씬의 엔딩 판넬속 텍스트에서 추가 작업한 내용을 기술하고, 기술한 내용이 모두 출력될수 있게 판넬이 올라가는 시간을 길게 늘이는 것이었다.
그리고 플레이 영상을 녹화하면서 문제가 될 부분이라거나, 수정해야 될 디자인적인 요소가 있으면 수정하는 역할을 맡았다. 그리고 PPT의 기본적인 틀을 제작하는 부분도 담당했다. PPT는 본 캠프 이전에 수강했던 국비교육 프로그램중 AI 학습 관련 과정에서 학습했던 AI기반 툴에 프롬프트를 입력해서 시안을 뽑았다.
#내일배움캠프 #스파르타내일배움캠프 #스파르타내일배움캠프TIL