유니티 설명 조금
- 에셋, 씬, 게임 오브젝트의 개념과 관계 설명
- 에셋(Asset):
- 게임에 필요한 모든 리소스(이미지, 사운드, 모델, 코드 등)를 의미
- 프로젝트의 에셋 폴더에 저장되며, 유니티에서 사용 가능한 형식으로 가져와서 게임에 활용
- 씬(Scene):
- 게임의 각 장면 또는 화면을 의미
- 유니티에서 게임은 하나 이상의 씬으로 구성되며, 각 씬은 게임의 특정 부분을 담당
- 예를 들어, 메뉴 씬, 게임 플레이 씬, 엔딩 씬 등으로 구성
- 게임 오브젝트(GameObject):
- 씬에 배치되는 모든 요소를 의미
- 게임 오브젝트는 에셋을 이용하여 씬에 생성되며, 게임의 동작과 상호작용을 담당
- 예를 들어, 캐릭터, NPC, 아이템, 장애물 등이 게임 오브젝트
- 게임 오브젝트는 계층 구조로 구성되어 부모-자식 관계를 가지며, 이를 통해 그룹화하고 조작
- 에셋(Asset):
PONG 게임
기본 에셋을 스파르타클럽이 준걸 따라 했는데 버그? 가있었다 내가 잘못 따라한건지 원래 이런건지 모르겠다 ㅋㅋ
바로 공이 각도를 줘서 치면 회전을한다
Rigidbody 충돌
콜리전 충돌 - 충동한걸 인지하고 실제로 충돌함
트리거 충돌 - 충동한걸 인지하고 실제로 충돌하지않음
이름 바꾸기 단축키
난 지금까지 우클릭 리네임으로 이름을 바꿨는데 마우스클릭 f2로 간단하게 바꿀수 있다
알아두면 좋은 유니티 스크립트
게임 오브젝트의 생명 주기 동안 호출되는 특정한 메서드들의 순서와 타이밍
- 게임 오브젝트의 생성, 초기화, 업데이트, 파괴 등과 관련된 작업을 수행
- Awake: 게임 오브젝트가 생성될 때 호출되는 메서드입니다. 주로 초기화 작업이 수행됩니다.
- Start: 게임 오브젝트가 활성화되어 게임 루프가 시작될 때 호출되는 메서드입니다. 초기 설정 및 시작 작업을 수행합니다.
- Update: 매 프레임마다 호출되는 메서드로, 게임 로직의 주요 업데이트가 이루어집니다.
- FixedUpdate: 물리 엔진 업데이트 시 호출되는 메서드입니다. 물리적인 시뮬레이션에 관련된 작업을 처리할 때 사용됩니다.
- LateUpdate: Update 메서드 호출 이후에 호출되는 메서드입니다. 다른 오브젝트의 업데이트가 완료된 후에 작업을 수행하는 데 유용합니다.
- OnEnable: 게임 오브젝트가 활성화될 때 호출되는 메서드입니다.
- OnDisable: 게임 오브젝트가 비활성화될 때 호출되는 메서드입니다.
- OnDestroy: 게임 오브젝트가 파괴될 때 호출되는 메서드입니다. 자원 정리 및 해제 작업이 수행됩니다.
유니티 컴포넌트 동작
처음에 이해가 좀 안갔었는데 기본 컴포넌트 부분을 생각하면 쉽다
- 게임 오브젝트에 부착되는 독립적인 기능 모듈
- 각 컴포넌트는 특정한 작업을 수행하거나 기능을 제공하는 역할
- 기본 컴포넌트 예시
- Transform: 게임 오브젝트의 위치, 회전, 크기 등을 조정하는 데 사용됩니다.
- Rigidbody: 물리적인 효과를 게임 오브젝트에 적용할 수 있게 해줍니다.
- Collider: 충돌 감지를 처리하기 위해 사용되는 컴포넌트입니다.
- SpriteRenderer: 2D 그래픽을 표시하는 데 사용됩니다.
- AudioSource: 사운드를 재생하기 위해 사용되는 컴포넌트입니다.
기본 컴포넌트를 함수라고 생각하면 물리적인 기능 함수를 오브젝트에 넣어줌 = 리지드바디
이런 느낌으로 기능을 넣어주는 느낌 으로 이해했다
PPU란?
pixel per unit
유니티는 기본 1칸이 100x100픽셀 크기이다 이미지가 5x5 짜리를 사용시 ppu를 5를 넣으면 이 5만큼의 픽셀의 이미지를 100에 알아서 잘 넣어준다는 것 으로 이해 했는데 정확하진 않음
ppu가 높아지면 고해상도
그리고 크기 비교를 위해 이미지를 공통되게 맞춰줘야 좋다
로컬좌표 - 부모 계층으로 부터 받은 좌표
월드좌표 - 세상에서의 실제 좌표
트랜스폼에서 보여주는건 로컬 실제로는 내부에 월드도 있음
포지션 얻을시 .position= 월드 .localpositon=로컬
?. 복습 널이 아닐때 작동하기
보통 이벤트에 사용됨
이벤트 변수명?.invoke(변수);
이벤트에 뭔가 있다면 실행
사용이유 - 이벤트 외부에서 사용하는걸 막기 위해
Sendmessage
인풋 시스템에서 하는거 on 이름 붙은거 모두에 불러주기 때문에 함수이름을 잘짓자