https://www.udemy.com/course/best-c-unity-2d/
씬에 오브젝트 추가: 2D Object > Sprite Shape
변경된 모양 저장되는 곳: 폴더 > Create > 2D > Sprite Shape Profile

Sprite Shape Profile의 Sprite 바꿨더니 테두리 바뀜

Fill - Texture 바꿨더니 안도 채워짐
Edit Spline 누르면 모양 변형시킬 수 있다
Edge Collider 붙이면 스프라이트 전체 경계에 딱 맞는 콜라이더가 자동으로 생성 (스프라이트 모양 변경해도 같이 바뀜)
씬에 오브젝트 만들 때 Physics > Dynamic Sprite 하면 콜라이더랑 리지드바디 둘 다 붙어있는 오브젝트 나온다

엣지 콜라이더 때문에 살짝 떠서 이동한다

Collider의 Offset을 조절하면 됨

점 편집 가서 점들 전부 드래그한 후에 Height 조절하면 눈 크기 키울 수 있다

참고로 Sprite Shape가 매끄러운 곡선인 이유는 Sprite Editor에서 미리 필요한 직선 부분만 잘라놨기 때문.
다른 텍스처로 fill 했는데 안 채워지면 Wrap mode를 Repeat로 바꿔봐라 (눈 스프라이트도 마찬가지)
Cinemachine Pacakage 인스톨해오고
Ball에 Follow 걸면 위치 따라오고
Body를 Framing Transposer로 변경한 후에 Screen X를 바꿔주면 보여주는 화면 오프셋도 변경 가능
Surface Effector는 컨베이어 벨트처럼 특정 방향으로 힘을 주는 컴포넌트
이거 말고도 Effectors 2D에 여러 가지 종류 있다
추가 후에 콜라이더에 Used By Effector 체크해줘야한다
추가되는 속도는 Speed에서 조절할 수 있다

강의엔 나왔는데 나한테 안 발생한 버그. 플레이어가 벽뚫하기도 한다.
이땐 Rigidbody > Collision Detection > Continous로 바꾼다
Force Scale은 얼마나 중력과 관계없이 힘이 작용하도록 할지 조절하는 값
땅에 붙어있을 때만 Effector가 작용한다
rb2d.AddTorque(torqueAmount);
Rigidbody에서 Linear Drag: 선형 속도 관성력, Angular Drag: 회전 속도 관성력
클래스 안에 메소드들이 있다
보통 C# 파일 하나에 클래스 하나가 있다
using은 네임스페이스 지정하는거

Build Settings에서 필요없는 씬 지우고 Add Open Scenes 해줘야 빌드할 때 유니티가 인식
오른쪽에 보면 인덱스 번호 보이는데 그걸로 씬 제어 가능
VS Code에서 SceneManager만 치고 자동완성 하면 네임스페이스 자동으로 추가해준다
딜레이 넣는 방법
Invoke가 더 간단하니까 여기선 Invoke 써보겠다고 함
Invoke("NameOfMethod", delay);
사용 방법: 딜레이하고 싶은거 메소드로 만든 다음에 Invoke에 이름을 넣는다
Effects > Particle System 만들고
Gizmo에 가서 Selection Outline 끄면 주황색 테두리 사라짐
Particle System은 Emitter와 Particle로 이뤄짐
Inspector에서 모듈들 누르면 상세 조정 가능
각각의 Particle은 게임 오브젝트가 아니다. 그래서 각각의 Transform에 접근할 수 없다.
Start Lifetime: 얼마나 지속될지
Start Speed: 속도
Start Color: 색깔
Start Size: 크기
드롭다운 누르면 'Random Between Two Constants' 등 옵션 있음
Renderer 모듈에서 머테리얼도 바꿀 수 있음
Noise 모듈 쓰면 약간 흔들리는 효과 줄 수 있음