TIL

유니티 설명 조금

박민혁_kog 2023. 9. 4. 20:26
  • 에셋, 씬, 게임 오브젝트의 개념과 관계 설명
    • 에셋(Asset):
      • 게임에 필요한 모든 리소스(이미지, 사운드, 모델, 코드 등)를 의미
      • 프로젝트의 에셋 폴더에 저장되며, 유니티에서 사용 가능한 형식으로 가져와서 게임에 활용
    • 씬(Scene):
      • 게임의 각 장면 또는 화면을 의미
      • 유니티에서 게임은 하나 이상의 씬으로 구성되며, 각 씬은 게임의 특정 부분을 담당
      • 예를 들어, 메뉴 씬, 게임 플레이 씬, 엔딩 씬 등으로 구성
    • 게임 오브젝트(GameObject):
      • 씬에 배치되는 모든 요소를 의미
      • 게임 오브젝트는 에셋을 이용하여 씬에 생성되며, 게임의 동작과 상호작용을 담당
      • 예를 들어, 캐릭터, NPC, 아이템, 장애물 등이 게임 오브젝트
      • 게임 오브젝트는 계층 구조로 구성되어 부모-자식 관계를 가지며, 이를 통해 그룹화하고 조작

PONG 게임

기본 에셋을 스파르타클럽이 준걸 따라 했는데 버그? 가있었다 내가 잘못 따라한건지 원래 이런건지 모르겠다 ㅋㅋ

바로 공이 각도를 줘서 치면 회전을한다

 

Rigidbody  충돌

콜리전 충돌 - 충동한걸 인지하고 실제로 충돌함

트리거 충돌 - 충동한걸 인지하고 실제로 충돌하지않음

 

이름 바꾸기 단축키

난 지금까지 우클릭 리네임으로 이름을 바꿨는데 마우스클릭 f2로 간단하게 바꿀수 있다

 

알아두면 좋은 유니티 스크립트

게임 오브젝트의 생명 주기 동안 호출되는 특정한 메서드들의 순서와 타이밍

  • 게임 오브젝트의 생성, 초기화, 업데이트, 파괴 등과 관련된 작업을 수행
  1. Awake: 게임 오브젝트가 생성될 때 호출되는 메서드입니다. 주로 초기화 작업이 수행됩니다.
  2. Start: 게임 오브젝트가 활성화되어 게임 루프가 시작될 때 호출되는 메서드입니다. 초기 설정 및 시작 작업을 수행합니다.
  3. Update: 매 프레임마다 호출되는 메서드로, 게임 로직의 주요 업데이트가 이루어집니다.
  4. FixedUpdate: 물리 엔진 업데이트 시 호출되는 메서드입니다. 물리적인 시뮬레이션에 관련된 작업을 처리할 때 사용됩니다.
  5. LateUpdate: Update 메서드 호출 이후에 호출되는 메서드입니다. 다른 오브젝트의 업데이트가 완료된 후에 작업을 수행하는 데 유용합니다.
  6. OnEnable: 게임 오브젝트가 활성화될 때 호출되는 메서드입니다.
  7. OnDisable: 게임 오브젝트가 비활성화될 때 호출되는 메서드입니다.
  8. OnDestroy: 게임 오브젝트가 파괴될 때 호출되는 메서드입니다. 자원 정리 및 해제 작업이 수행됩니다.

 

유니티 컴포넌트 동작

처음에 이해가 좀 안갔었는데 기본 컴포넌트 부분을 생각하면 쉽다

  • 게임 오브젝트에 부착되는 독립적인 기능 모듈
  • 각 컴포넌트는 특정한 작업을 수행하거나 기능을 제공하는 역할
  • 기본 컴포넌트 예시
    1. Transform: 게임 오브젝트의 위치, 회전, 크기 등을 조정하는 데 사용됩니다.
    2. Rigidbody: 물리적인 효과를 게임 오브젝트에 적용할 수 있게 해줍니다.
    3. Collider: 충돌 감지를 처리하기 위해 사용되는 컴포넌트입니다.
    4. SpriteRenderer: 2D 그래픽을 표시하는 데 사용됩니다.
    5. AudioSource: 사운드를 재생하기 위해 사용되는 컴포넌트입니다.

기본 컴포넌트를 함수라고 생각하면 물리적인 기능 함수를 오브젝트에 넣어줌 = 리지드바디 

이런 느낌으로 기능을 넣어주는 느낌 으로 이해했다

 

PPU란?

pixel per unit 

유니티는 기본 1칸이 100x100픽셀 크기이다 이미지가 5x5 짜리를 사용시 ppu를 5를 넣으면 이 5만큼의 픽셀의 이미지를 100에 알아서 잘 넣어준다는 것 으로 이해 했는데 정확하진 않음

ppu가 높아지면 고해상도 

그리고 크기 비교를 위해 이미지를 공통되게 맞춰줘야 좋다 

 

 

로컬좌표 - 부모 계층으로 부터 받은 좌표

월드좌표 - 세상에서의 실제 좌표

 

트랜스폼에서 보여주는건 로컬 실제로는 내부에 월드도 있음

포지션 얻을시 .position= 월드 .localpositon=로컬

 

?. 복습 널이 아닐때 작동하기

보통 이벤트에 사용됨

이벤트 변수명?.invoke(변수);

이벤트에 뭔가 있다면 실행

사용이유 - 이벤트 외부에서 사용하는걸 막기 위해

 

Sendmessage

 인풋 시스템에서 하는거 on 이름 붙은거 모두에 불러주기 때문에 함수이름을 잘짓자