- 핵심 질문
- 같은 조작을 다시 해도 같은 움직임과 화면이 나오나요?
- 학습 방식
- 현재 상태 확인 → 보완 → 검증 → 기록
- 이전 학습
- 1교시 Clip 5개 · 2교시 Animator와 Cinemachine
- 이어 쓸 장면
- Week06_AnimationCamera
- 수업 시간
- 개인 실습과 검증 60분
- 도착점
- 필수 테스트 8개 · 재실행 가능한 장면 · 동작 기록
1교시의 다섯 Clip과 2교시의 Animator·대시·Cinemachine을 이어 사용합니다. 먼저 현재 장면을 실행하고, 빠진 부분부터 보완합니다. 5주차 수집·위험·목표는 시작 조건이 아닙니다. 이미 연결을 마쳤다면 바로 필수 테스트로 넘어갑니다.
완성의 기준은 다시 실행해도 같은 결과가 나오는 것입니다
그림이 한 번 움직이는 데서 끝내지 않고, 입력·상태·화면이 함께 맞는지 확인합니다.
| 확인할 것 | 보여 줄 결과 |
|---|---|
| 다섯 동작 | Idle·Move·Jump·Fall·Dash가 상황에 맞게 바뀌며, 그림의 몸체 크기와 기준점이 갑자기 튀지 않습니다. |
| 조작과 방향 | 기존 이동·점프·착지·벽 충돌을 유지합니다. 대시와 좌우 반전이 동작하고, 정지하면 마지막 방향을 유지합니다. |
| 카메라 | Dead Zone 안에서는 머물고 밖에서는 따라오며, 레벨의 네 끝에서도 화면이 CameraBounds 안에 남습니다. |
| 재실행과 기록 | Play를 껐다 켜도 Console Error 0, 필수 T01-T08 모두 PASS입니다. Scene·관련 에셋·영상·CSV를 보관합니다. |
설정 비교는 필수 테스트를 마친 뒤 하나만 선택합니다. 시간이 부족하면 실패한 테스트의 원인과 현재 상태를 기록하고, 저장과 CSV 내려받기를 먼저 마칩니다.
확인·보완에서 검증·기록까지 이어갑니다
60분 안에서 현재 진행 상태에 맞춰 움직입니다. 테스트와 저장 시간을 마지막에 남겨 둡니다.
현재 상태 확인
장면을 한 번 실행해 이미 되는 것과 처음 막힌 것을 구분합니다.
도착점시작할 점검 항목 하나필요한 연결 보완
아래 네 점검 항목 중 필요한 부분을 보완합니다. 연결 하나를 고친 뒤 같은 조작으로 다시 확인합니다.
도착점다섯 동작과 카메라가 반응하는 장면필수 테스트와 설정 비교
T01-T08을 실행하고 결과를 기록합니다. 모두 통과하면 설정 하나를 바꾸어 비교하고, 관련 테스트를 다시 실행합니다.
도착점8개 판정과 변경 전후 관찰저장 후 재실행
편집 상태에서 최종 값을 적용하고 저장합니다. 다시 실행해 영상과 CSV를 남깁니다.
도착점다음 시간에도 이어 쓸 수 있는 결과
현재 장면에서 어디까지 되는지 먼저 확인합니다
1·2교시에서 작업한 Week06_AnimationCamera를 엽니다. 완료한 연결은 유지하고, 아래에서 처음 막힌 지점으로 이동합니다.
저장한 장면에서 기본 조작 확인하기
Play·Preview·Record가 꺼져 있는지 확인하고 Scene을 저장합니다. Play 후 Game View를 클릭해 좌우 이동, 점프, 착지와 벽 충돌을 확인합니다. Console의 첫 빨간 오류가 있으면 그 오류부터 해결합니다.
시작 기준기존 조작이 유지되고 Console Error가 0개입니다.그림과 카메라가 반응하는 범위 찾기
정지 → 걷기 → 점프 → 낙하 → 착지 → 대시 순서로 한 번 실행합니다. 카메라가 따라오는지도 봅니다. 확인 후 Play를 끄고, 처음 어긋난 항목을 아래에서 고릅니다.
시작 기준먼저 보완할 항목을 하나 정했습니다.
| 지금 보이는 상태 | 먼저 볼 곳 |
|---|---|
| Clip이 없거나 그림이 튑니다 | 점검 1 · Clip과 그림 기준점 |
| Clip은 재생되지만 입력과 동작이 맞지 않습니다 | 점검 2 · 대시·상태·방향 |
| 동작은 맞지만 카메라가 따라오지 않습니다 | 점검 3 · 카메라 추적 |
| 카메라가 레벨 밖을 보여 줍니다 | 점검 4 · 화면 경계 |
| 다섯 동작과 카메라가 모두 연결되었습니다 | 필수 테스트 T01-T08 |
최종 오브젝트 구조가 헷갈릴 때
6주차 장면이나 실습 자료가 없을 때
Week04_JumpCourse를 Week06_AnimationCamera로 별도 저장하고, 1교시 시작 장면과 자료부터 준비합니다. 공통 ZIP은 완성 프로젝트가 아닌 PNG·스크립트·설정 안내입니다.
Cinemachine이 없다면 2교시 시작 전 준비에서 3.1 계열 설치를 확인합니다. 이미 추가한 Visual·PlayerDash·PlayerAnimation과 같은 이름의 class를 다시 만들지 않습니다.
수집물과 위험·목표를 유지한 채 이동·그림·카메라를 점검합니다. 테스트 중 방해받지 않는 바닥 구간을 사용하고, CameraBoundary의 물리 접촉과 Ground Layers 제외 설정을 확인합니다.
점검 1 · Clip과 그림의 기준점을 확인합니다
Animation 창에서는 Clip 자체를 확인합니다. 아직 게임 입력에 따라 전환되지 않아도 각 Clip을 따로 재생할 수 있어야 합니다.
Visual의 그림을 몸체와 맞추기
Visual을 선택하고 SpriteRenderer·Animator가 있는지 봅니다. Player의 Collider와 Scale을 바꾸기 전에 공통 PPU 220, 기본 Pivot, Jump·Fall의 공통 Pivot을 확인합니다. 모든 동작은 256×256 칸, PPU 220, Pivot X 0.5 / Y 0.125를 사용합니다.
확인동작이 바뀌어도 몸체 크기와 발 기준점이 갑자기 달라지지 않습니다.다섯 Clip을 하나씩 Preview하기
걷기는 8프레임, 대기·점프·낙하·대시는 각각 4프레임입니다. 기본 Samples는 Idle 4 · Move 8 · Jump 12 · Fall 8 · Dash 20입니다. Idle·Move·Fall은 Loop Time On, Jump·Dash는 Off로 확인합니다.
Clip은
SpriteRenderer.Sprite만 바꿉니다. 불필요한 Transform 트랙이 있으면 제거하고, 확인 후 Preview와 Record를 끕니다.다음 단계 기준다섯 Clip이 각각 재생되고, Jump의 상승 자세부터 Fall까지 크기와 기준점이 이어집니다.
걷기 분할은 C 8 / R 1, 나머지 네 동작은 C 4 / R 1입니다. 모두 Sprite Mode Multiple로 두고 Apply합니다. Clip이 빠졌다면 Idle, Move, Jump·Fall·Dash 중 필요한 곳으로 돌아갑니다.
점검 2 · 대시·상태·방향을 연결합니다
입력으로 Player가 움직이는지 먼저 보고, 그 움직임을 Animator와 그림이 따라오는지 확인합니다.
대시 이동부터 확인하기
Player의 PlayerDash와 Dash Action을 확인합니다. Game View를 클릭한 뒤 Left Shift를 눌러 짧은 가로 대시가 나오는지 봅니다. 움직이지 않으면 대시 단독 확인으로 돌아갑니다.
확인대시는 한 번 누를 때 한 번 실행되고, 기존 수직 운동을 유지합니다.바닥 판정과 그림 연결하기
바닥·발판의 Ground Layer와 Visual의 PlayerAnimation을 확인합니다. Body는 Player의 Rigidbody2D, Dash는 Player의 PlayerDash를 가리키고, Ground Layers에는 실제 바닥 Layer가 들어갑니다.
PlayerAnimation과 Animator를 켠 상태에서 정지·걷기·점프·낙하·대시를 실행합니다. State 값과 활성 상태, 실제 그림을 함께 비교합니다. State는 Idle 0 · Move 1 · Jump 2 · Fall 3 · Dash 4입니다.
확인대시가 우선이며, 종료 후 바닥 여부와 현재 속도에 맞는 상태로 돌아갑니다.전환과 좌우 방향 확인하기
State는 바뀌는데 그림이 그대로면 Any State 전환의 조건과 목적지 Motion을 봅니다. Has Exit Time Off, Transition Duration 0, Can Transition To Self Off가 기준입니다.
왼쪽으로 움직였다 멈춰도 그림은 왼쪽을 유지해야 합니다. 방향만 반대면 Artwork Faces Right를 확인합니다. 반전은 SpriteRenderer.flipX로 처리하고 Player의 Collider는 유지합니다.
다음 단계 기준정지 → 이동 → 상승 → 정점·낙하 → 착지와 지상·공중 대시가 이어집니다.
Play 중에는 PlayerAnimation이 State를 계속 갱신합니다. 수동 확인 중에만 PlayerAnimation을 끄고 Animator는 켠 채 0 → 1 → 2 → 3 → 4를 비교합니다. 끝나면 PlayerAnimation을 다시 켭니다. 상세 순서는 2교시 상태 번호 미리 보기를 참고합니다.
점검 3 · 카메라가 언제, 어떻게 따라오는지 봅니다
레벨 경계에서 충분히 떨어진 넓은 구간에서 확인해야 Dead Zone과 Damping의 차이를 볼 수 있습니다.
카메라 연결과 추적 대상 확인하기
Main Camera의 Cinemachine Brain, Cinemachine Camera의 Tracking Target = Player와 Position Composer를 확인합니다. Main Camera는 Player의 자식이 아니어야 하고, 기존 추적 스크립트와 동시에 움직이지 않아야 합니다. 빠진 연결은 2교시 카메라 설정에서 보완합니다.
확인Player를 따라가며, Visual의 그림 교체에 카메라가 흔들리지 않습니다.필수 테스트의 기준값 맞추기
Position Composer에서 Screen Position (0,0), Lookahead Off, Hard Limits Off를 확인합니다. Dead Zone On · Size (0.15,0.15), Damping X/Y 0.5 · Z 0을 기준으로 시작합니다.
카메라가 멈춘 뒤 짧게 이동하면 화면이 머물고, 계속 이동하면 따라와야 합니다. 그림 외곽보다 Tracking Target인 Player 루트의 위치를 기준으로 봅니다. 반응이 다르면 Dead Zone과 Damping 비교를 다시 확인합니다.
다음 단계 기준Dead Zone 안의 작은 이동과 영역 밖의 추적을 구분할 수 있습니다.
Play 중 바꾼 값은 기록하고, 종료 후 편집 상태에서 다시 입력해 Scene을 저장합니다. 최종 테스트는 다시 Play한 상태에서 시작합니다.
점검 4 · 화면 경계와 물리 충돌을 구분합니다
CameraBounds는 카메라가 볼 수 있는 영역입니다. 플레이어가 딛거나 부딪히는 바닥·벽과 별도로 확인합니다.
경계가 물리 조작에 끼어들지 않는지 확인하기
CameraBounds의 PolygonCollider2D, Is Trigger On, CameraBoundary Layer를 봅니다. Physics 2D의 Layer Collision Matrix에서 CameraBoundary와 모든 Layer의 접촉을 끄고, PlayerAnimation의 Ground Layers에서도 제외합니다. 설정이 빠졌다면 2교시 화면 경계로 돌아갑니다.
확인경계를 추가한 뒤에도 점프·착지·벽 충돌이 같습니다.16:9 화면의 네 끝 확인하기
Cinemachine Confiner 2D의 Bounding Shape 2D에 CameraBounds의 PolygonCollider2D가 연결되어 있는지 봅니다. 레벨의 왼쪽·오른쪽·위·아래에서 카메라가 안정될 때까지 기다린 뒤, 화면 전체가 경계 안에 남는지 확인합니다.
닿기 어려운 곳은 Play 중에만 Player를 경계 안의 바닥·발판 근처로 옮겨 검사합니다. 검사 후 Play를 종료해 원래 시작 위치로 돌아옵니다.
테스트 시작 기준경계에서 Player가 화면 중앙을 벗어나더라도 화면 밖 빈 영역은 보이지 않습니다.
Confiner 연결만으로 해결할 수 없습니다. Orthographic Size, 화면 비율, 경계의 폭·높이를 함께 비교합니다. 경계 모양이나 Lens를 바꿨다면 캐시 갱신 안내도 확인합니다.
필수 테스트 8개로 완료를 증명합니다
같은 시작 위치와 설정에서 T01부터 차례로 실행합니다. 여러 조작이 있는 행은 적힌 순서대로 확인하고, 모든 기대 결과가 맞을 때 PASS로 기록합니다.
테스트 준비: Game View 16:9, Preview·Record Off, PlayerAnimation On을 확인합니다. 이동키는 A/D 또는 좌우 방향키, 점프는 Space, 대시는 Left Shift입니다. PlayerDash의 기본값은 Duration 0.2초·Cooldown 0.6초입니다. 카메라는 점검 3의 기준값으로 시작하고, Inspector를 만진 뒤에는 Game View를 다시 클릭합니다.
T01-T05는 동작과 조작, T06-T08은 추적과 경계를 확인합니다. 관찰 칸에는 “T05 · 착지 후 Fall 유지 → Ground Layer 지정 → 재실행 후 Idle 복귀”처럼 처음 현상, 바꾼 항목, 다시 본 결과를 적습니다.
| ID | 조작과 조건 | 기대 결과 | 판정 | 관찰과 수정 기록 |
|---|---|---|---|---|
| T01 | 바닥에 착지한 상태로 Play 후 2초 동안 입력하지 않음 | Idle 네 프레임의 호흡이 반복됨. 의도한 자세 변화 외에 발 기준점과 그림 전체 위치가 갑자기 튀지 않음 | ||
| T02 | 벽에 막히지 않는 바닥에서 D 또는 오른쪽 방향키를 누름 | 0.2초 안에 Move로 전환되고 여덟 프레임이 반복됨. 실제 가로 이동과 걷기 그림이 함께 보임 | ||
| T03 |
| 정지하면 Idle과 마지막 방향을 유지함. 기본 Duration 0.2초 동안 Dash가 한 번 실행된 뒤 Idle로 복귀함. 누른 채 자동 재발동하지 않고, Cooldown 후 다시 누르면 실행됨 | ||
| T04 | A와 D를 번갈아 누른 뒤 각각 정지. Scene에서 Player의 Collider2D도 확인 | 그림은 진행 방향을 향하고 정지하면 마지막 방향을 유지함. Player의 Scale과 Collider2D 모양은 변하지 않음 | ||
| T05 |
|
| ||
| T06 | 레벨 경계에서 떨어진 곳에서 카메라가 멈출 때까지 기다림. Player 루트가 Dead Zone 안에 머물 만큼 짧게 이동 | Player는 움직이지만 배경과 카메라 프레임은 움직이지 않음. 경계에 막혀 멈춘 현상과 구분됨 | ||
| T07 | T06과 같은 시작 위치에서 한 방향으로 계속 이동해 Dead Zone을 벗어남 | 선택한 Damping 값(기본 X/Y 0.5)에 맞춰 카메라가 구도를 부드럽게 따라잡음. 떨리거나 다른 추적 방식과 충돌하지 않음 | ||
| T08 | 레벨의 왼쪽, 오른쪽, 위와 아래 끝 확인. 닿기 어려운 곳은 Play 중 Player를 경계 안의 바닥·발판 근처로 옮겨 검사 | 네 위치 모두 카메라가 안정된 뒤 화면 전체가 CameraBounds 안에 남음. 검사 후 Play를 끄면 저장한 시작 위치로 돌아옴 | ||
| T09 선택 | Game View를 16:9와 4:3으로 바꿔 네 끝 확인 | 두 화면 비율에서도 카메라 경계가 안정적으로 유지됨 |
판정과 관찰은 이 브라우저에 저장됩니다. CSV는 개인 점검 기록입니다.
한 설정을 바꾸고 같은 조작으로 비교합니다
필수 테스트를 통과한 뒤 아래 세 가지 중 하나만 고릅니다. 시간에 여유가 없다면 현재 결과 저장을 먼저 마칩니다.
바꾸기 전 값을 적고, 같은 시작 위치와 같은 조작을 반복합니다. 두 값을 동시에 바꾸면 어떤 설정 때문에 화면이 달라졌는지 구분하기 어렵습니다.
| 선택 | 유지할 조건 | 바꿀 값 | 관찰과 재검증 |
|---|---|---|---|
| 걷기 그림의 박자 | 같은 Sprite 여덟 장·키 순서·Player 이동 속도 | Move Samples 8 → 12 | 걷기 주기와 실제 이동 속도의 차이. 최종 값 적용 후 T02 |
| 카메라가 따라잡는 반응 | 같은 경로·Dead Zone (0.15,0.15)·Damping Y 0.5와 Z 0 | Damping X 0.2 → 0.8 | 가로 추적의 지연과 다음 발판이 보이는 시점. T07·T08 |
| 추적을 시작하는 영역 | Dead Zone On·Size Y 0.15·Damping X/Y 0.5와 Z 0 | Dead Zone Size X 0 → 0.2 | 카메라가 움직이기 전 허용되는 가로 이동 범위. T06·T07·T08 |
변경 전후를 한 문장으로 기록하기
“___는 고정하고 ___를 ___에서 ___로 바꾸니 ___가 달라졌다.” 관련 테스트의 관찰 칸에 적습니다. 예: “Move를 8에서 12로 바꾸니 그림은 빨라졌지만 같은 시간에 이동한 거리는 같았다.”
기록고정 조건·변경값·눈으로 본 차이가 있습니다.최종 값을 편집 상태에서 저장하기
Play를 끄고 선택한 값을 다시 입력합니다. Scene과 Clip을 저장하고 재실행한 뒤 관련 테스트를 갱신합니다. Dead Zone X 0은 비교용이므로 최종 검사 전에는 0.15 또는 선택한 양수 값으로 복구합니다. 값을 선택하기 어렵다면 카메라 기준값과 Move Samples 8로 돌아갑니다.
완료 기준저장 후 다시 실행해도 기록한 결과가 같습니다.
실패한 테스트에서 원인을 좁힙니다
처음 어긋난 값이나 연결 하나를 찾습니다. 수정 후에는 같은 테스트를 다시 실행해 실제 결과가 달라졌는지 확인합니다.
Console에 빨간 오류가 있습니다
첫 오류의 파일명과 줄 번호를 확인합니다. PlayerDash·PlayerAnimation class 중복, 두 파일 중 하나가 빠진 경우, PlayerController 안에 전체 코드를 붙인 경우를 먼저 봅니다. 스크립트 가져오기와 부착 순서로 돌아갑니다.
T01·T02·T05 · 그림이 커지거나 점프에서 튑니다
Player의 Collider를 고치기 전에 공통 PPU 220와 공통 Pivot을 봅니다. 최신 시트는 모두 PPU 220, Custom / Normalized Pivot X 0.5 / Y 0.125입니다. 각 프레임이 256×256인지 확인합니다. Clip에 Transform 트랙이 생겼는지 살펴봅니다.
T02·T05 · State는 바뀌는데 그림이 그대로입니다
전환 조건의 State / Int / Equals, 목적지 Motion, Visual에 연결된 Controller를 차례로 확인합니다. 첫 프레임만 반복되면 Can Transition To Self가 꺼졌는지 봅니다.
T03·T05 · 대시가 안 되거나 끝난 뒤 동작이 이상합니다
Game View 포커스 → Dash Action과 Binding → PlayerDash 활성 상태 → 대시 이동 단독 확인 순서로 봅니다. 이동은 되는데 그림이 틀리면 Visual의 Dash 참조와 State 4 전환을 확인합니다. Cooldown 후 버튼을 떼었다 다시 눌러 재시험합니다.
T04 · 방향만 반대로 보입니다
Artwork Faces Right와 원본 그림이 바라보는 방향을 비교합니다. 방향 확인을 다시 실행하고, Player Scale을 음수로 바꾸지 않았는지 봅니다.
T05 · 바닥인데 Fall이거나 벽 옆에서 Idle이 됩니다
실제 바닥·발판의 Ground Layer, Ground Layers 선택, Collider의 Is Trigger Off를 확인합니다. CameraBoundary는 제외합니다. 벽 옆면과 천장 접촉은 착지로 세지 않으며, 기존 PlayerController도 유지합니다.
T06·T07 · 카메라가 멈추거나 떨립니다
Brain·Tracking Target·Position Composer와 Live인 Cinemachine Camera를 확인합니다. Player 자식인 Main Camera나 기존 추적 코드가 함께 움직이지 않는지 봅니다. 경계에서 떨어진 곳에서 카메라가 안정된 뒤 다시 시험합니다.
T08 · 화면 밖이 보이거나 경계에서 중앙 구도가 달라집니다
Bounding Shape 2D, 화면 크기, 경계 크기를 비교합니다. Confiner가 카메라를 멈추면 Player가 중앙을 벗어날 수 있습니다. 화면 전체가 경계 안에 있고 Player가 보이는지로 판단합니다.
“Unity 6.6 / Cinemachine 3.1, 실패 테스트 T__, 기대 결과 __, 실제 현상 __, Console 첫 오류 __, 확인한 참조 __. 다음에 확인할 한 항목과 이유를 설명해 주세요.” Ask나 MCP에서 받은 설명은 자신의 Inspector 값과 비교하고, 수정 결과는 Play Mode에서 확인합니다.
저장 후 재실행하고 영상과 CSV를 남깁니다
Play·Preview·Record를 끄고 최종 설정과 Scene을 저장합니다. 다시 Play해 Console Error 0과 동작을 확인한 뒤 녹화합니다. 제출 일정과 경로는 수업 공지를 따릅니다.
Week06_AnimationCamera.unity
1·2교시부터 이어 온 Scene을 원래 Unity 프로젝트 안에 저장합니다. Scene 파일만 떼어 두면 Sprite·Clip·스크립트 참조가 빠지므로 관련 에셋도 함께 보관합니다.
Idle·Move·Jump·Fall·Dash Clip
Player_Idle.anim, Player_Move.anim, Player_Jump.anim, Player_Fall.anim, Player_Dash.anim, Controller와 Sprite, PlayerAnimation.cs, PlayerDash.cs를 함께 보관합니다.
week06_학번_이름_demo.mp4
20-30초 동안 정지 → 좌우 걷기 → 점프·낙하·착지 → 대시 → 카메라 추적과 한 경계 도달을 보여 줍니다. Game View에서 동작을 읽을 수 있는 크기로 녹화합니다.
week06_학번_이름_test.csv
학번·이름을 입력하고 이 페이지의 CSV 저장을 누릅니다. T01-T08 판정과 수정 기록, 선택한 설정 비교를 보관합니다. 내려받은 CSV를 열어 기록이 들어 있는지 확인합니다.
영상에는 대표 동작의 흐름을 담고, 네 경계와 재사용 대기 등 모든 필수 항목의 결과는 CSV에 기록합니다. 체크리스트는 스스로 확인한 결과이며 Unity의 실제 상태를 자동으로 판정하지 않습니다.
저장 후 마지막 확인 8개
체크 결과는 이 브라우저에 저장됩니다.
내 결과를 세 문장으로 설명합니다
자기 Game View와 테스트 기록을 가리키며 설명합니다. 설정 이름에 어떤 화면 변화가 대응하는지 연결합니다.
- 내 Animator는 ______일 때 State 4를 선택하고, 대시가 끝나면 ______를 확인해 다음 동작을 고릅니다.
- Dead Zone은 ______를, Damping은 ______를 바꿉니다. 내 장면에서는 ______로 확인했습니다.
- 내가 수정한 항목은 ______이며, T__를 다시 실행해 ______를 확인했습니다. 처음부터 통과했다면 유지한 설정과 확인 방법을 설명합니다.
저장한 Week06_AnimationCamera와 관련 에셋, 테스트 CSV를 보관합니다. 7주차 게임 상태·UI는 5주차의 수집·상호작용을 바탕으로 이어지므로, 수집 수가 변하는 흐름도 다시 확인합니다.
실습 중 다시 볼 자료
문제가 난 단계의 설정과 기대 결과를 먼저 비교합니다.
- Sprite Editor ↗프레임 영역과 Pivot
- Animation Clip 만들기 ↗선택한 오브젝트의 Animation 창
- Animator 전환 ↗조건과 Has Exit Time
- Animator.SetFloat ↗Float Parameter 갱신
- SpriteRenderer.flipX ↗렌더링만 좌우 반전
- Cinemachine 추적 설정 ↗Main Camera와 Cinemachine Camera
- Position Composer ↗Dead Zone과 Damping
- Confiner 2D ↗카메라 경계와 Collider 설정

