오늘 학습 키워드
유니티 팀 프로젝트
오늘 학습 한 내용을 나만의 언어로 정리하기
유니티 팀플
자석 아이템용 Trigger Field 만들기
- 일단 플레이어 밑에 빈 GameObject 생성
- 그리고 Circle Collider를 붙임
- IsTrigger 체크
- 파티클 시스템으로 이펙트 보이기
- 만든 방법 : Shape를 Circle로 하고, Velocity over Lifetime에서 Radial을 음수로 함
Input Action을 더 구체적으로 쓰기
- 지금은 키가 눌렸을 때에만 반응하게 되어있는데, 우리 팀 요청 사항으로 누르고 있을 때 계속 작동되길 원하셨음
- 따라서 Input Action을 좀 더 구체적으로 나눠서 쓰는 방법을 찾아봤음.
[SerializeField] private InputActionReference slideAction;
private void OnEnable()
{
slideAction.action.performed += StartSliding;
slideAction.action.canceled += StopSliding;
slideAction.action.Enable();
}
private void OnDisable()
{
slideAction.action.performed -= StartSliding;
slideAction.action.canceled -= StopSliding;
slideAction.action.Disable();
}
-
action.started : 처음 한 번 눌렸을 때
-
action.performed : 누르고 있을 때
-
action.canceled : 뗐을 때
-
다만 Button으로 값을 받아오는 경우 performed가 started 이후 한 번만 불러지기 때문에, 다른 방법을 사용하기로 함
void Update()
{
if (slideAction.action.IsPressed())
{
// 여기다가 입력
}
}
- IsPressed()를 통해 확인 가능함!
스탠다드 반 강의
- 신입이 하는 일은 UI 제작일 것임.
- UI 부분은 무조건 Canvas의 자식으로 두어야 함
- 이벤트 시스템이 있어야 상호작용을 할 수 있다!
- UI는 Transform 말고 Rect Transform을 가지고 있음.
Canvas Render Mode
- Screen Space - Overlay : 무조건 UI가 맨 위로 올라옴.
- Screen Space - Camera : 지정한 특정 카메라의 위에 필름이 붙은 것 처럼 작동
- World Space : 월드 좌표로 바꿈
Canvas Scaler
- UI를 만들면서 가장 중요한건 해상도 대응이다.
- Constant Pixel Size : 화면 크기가 바뀌어도 크기가 바뀌지 않는 상태. (쓸 일이 없다!)
- Scale With Screen Size : 특정 스크린 사이즈를 기준으로 맞춤.
- Screen Match Mode
- Match Width Or Height : 너비 우선 or 높이 우선. 보통 Match를 0.5로 둔다.
- Expand : 레퍼런스가 캔버스가 작아지지 않도록. 가로에 맞춤
- Shrink : 레퍼런스가 캔버스보다 커지지 않도록. 세로에 맞춤
- Screen Match Mode
- 팀플 작업할때는 꼭 해상도 먼저 맞춰놓고 하기!!!!
Rect Transform
- 일반적인 오브젝트는 Transform을 가지지만, UI는 Rect Transform을 가짐
- Pivot : 중심점! 파란색 으로 보임. 0~1 사이의 값을 가짐.
- Anchor : 기준점! 화살표 처럼 보임. 0~1 사이의 값을 가짐.
- Anchor Full Stretch일 때, Left, Right 등등은 각 위치에서부터 멀어진 거리를 의미함
이미지
- 이미지 색깔은 흰색 부분이 알아서 바뀌니까 UI팀한테 가능하면 흰색으로 달라고 해라
- Raycast Target : 말 그대로 레이캐스트를 허용하냐 아니냐
- Image Type
- Sliced : 스프라이트의 border를 설정하면 자연스럽게 늘어남. boarder 내부만 늘어남
- Tiled : 늘어나면 타일맵처럼 알아서 채워지면서 늘어남
- Filled : 채워지는걸 표현할 수 있음. (horizontal : 체력바, Radial 360 : 쿨타임 등등)
- Pixel Per Unit : 1 유닛 당 들어가는 픽셀의 갯수.(ex. 256 ⇒ 가로 256 픽셀, 세로 256픽셀 들어감)
Scroll View
- Scroll Rect
- Movement Type
- Unrestricted : 무한 스크롤링
- Elastic : 부드러움
- Clamped : 딱딱 떨어짐
- Movement Type
- Vertical Layout Group
- 이거 넣으면 그 밑에 있는 아이템들 직접 조정하려하지 마셈 오류남
- Control Child Size : 밑에 있는 아이템들 크기 알아서 조절하도록
- Layout Element
- Ignore Layout : 오와 열 사이에 빠질 수 있음
Layer / Sorting Layer
- Layer는 오브젝트 처리용. 나중에 Project Settings에 Physics에 가면 충돌 처리할 수 있음
- Sorting Layer : 클 수록 앞으로 옴
학습하며 겪었던 문제점 & 에러
- 문제&에러에 대한 정의
메모리가 터졌어요…
- 내가 한 시도
디버그 로그때문인가? 싶기도 하고 invoke 때문같아서 죄다 조건식 걸고 돌려봄
- 해결 방법
그게 문제가 아님 내가 지금 재귀호출을 하고있었음!!!!!!!!!!!!! (미치겠다진짜)
- 이 문제&에러를 다시 만나게 되었다면?
별거 안했는데 메모리 터지면 무조건 재귀호출 있나부터 보자;;;
내일 학습 할 것은 무엇인지
오디오 매니저 만들기 + invincible 프로퍼티 만들기