[Unity] 15. 씬 & eventTrigger

치치·2025년 3월 17일

Unity

목록 보기
17/27
post-thumbnail

배경 이미지 효과

런 게임에서 배경은 카메라로 비춰지지만, 절대 카메라와 가까워지지는 않는다
1. CanvasImage생성
2. CanvasRender ModeScreen Space - Camera로 설정

Screen Space - Camera 모드

  • UI요소가 카메라 뷰를 기준으로 위치를 설정하는 방식

  • 카메라와의 거리에 따라 이미지의 모습이 달라진다

    Plane Distance : 카메라와의 거리


안개 효과

  • 사진 속 두 게임와 같이 런게임에서는 뒤의 배경에 안개 낀 효과가 들어있다 -> 배경이 선명하게 보이지 않음
  • 유니티에서는 쉽게 안개효과를 사용할 수 있다
  1. Window -> Rendering -> Lighting
  2. Environment -> Other Settings -> Fog
    Fog 효과를 체크하면 활성화 된다
    Color : 색
    Density : 안개 강도

씬 등록하기

  1. File -> Build Settings
  2. 씬을 드래그 해서 두기
  3. 씬 옆에 뜨는 인덱스 번호는 작은 순서부터 먼저 씬에 빌드된다


비디오 적용하기

기본적인 2D 이미지를 올린 타이틀 화면도 괜찮지만, 좀 더 퀄리티 있는 배경을 원한다면 비디오 플레이어를 사용해보는 것도 좋다

  1. 비디오를 유니티 에디터로 가져오기
  2. 비디오의 Aspect Ratio를 설정한다
    -> 나는 해상도가 바껴도 꽉 채운 비디오가 필요하기 때문에 Stretch를 사용한다
  3. loop (반복) 체크

카드게임 타이틀 화면에서도 사용해도 괜찮을듯
-> loop는 체크하지말고, 비디오 나온 뒤 게임 시작 버튼 나오게


Cinemachine Camera

카메라를 더 수준높게 제어할 수 있고, 역동적인 움직임 효과나, 추적, 전환등을 사용할 수 있다
-> 사용하면 퀄리티가 높아진다


  • 캐릭터가 좌우로 이동할때는 카메라를 시네머신 virtual Camera로 렌더링하였다
    -> virtual Camera : 실제 카메라의 동작을 대체한다 (바뀐 Transform 정보가 실제 카메라에도 적용된다)

  • Follow : 카메라가 따라다닐 게임 오브젝트

  • Look At : 회전을 제어하여, Follow가 움직여도 지정된 Follow를 계속 바라본다

  • Body : Follow를 기준으로 한 카메라의 위치값 & 속도(Damping) 조절


Package Manager -> Unity Registry에서 Cinemachine 다운로드



EventTrigger를 사용하여 폰트 사이즈 조정

eventTrigger 컴포넌트는 UI요소에 사용되기 때문에 카드게임에 사용해보자 (런 정보 팝업)

이벤트 트리거란?

Event Trigger 컴포넌트는 UI 요소나 3D 객체가 특정 이벤트를 감지하고, 그에 대한 반응을 설정할 수 있게 해주는 기능



이벤트 트리거를 사용하여 폰트 사이즈를 조정해보자

타이틀 화면의 START 버튼과 QUIT 버튼의 텍스트를 마우스를 가져다대거나 클릭하면 폰트 사이즈가 변경되도록 해보겠다

  1. 마우스를 가져다 댔을때 : 사이즈 80

  2. 마우스를 벗어났을 때 : 사이즈 65 (기본)

  3. 마우스로 눌렀을 때 : 사이즈 50


  • Select 스크립트를 만들고 이벤트 트리거에 적용시킬 함수들을 정의한다

  • 버튼의 크기가 아닌 버튼의 자식에 들어있는 TextfontSize를 변경시킬 것이기 때문에, GetComponentInChildren을 사용하여 이 스크립트가 붙은 자식의 'Text' 컴포넌트를 가져온다

  • 이벤트 트리거를 적용시킬 게임 오브젝트에 Event Trigger 컴포넌트 추가
    -> 버튼에 넣어주었다

    이벤트 트리거는 다양하게 많다

  • 정의해둔 함수를 유니티 에디터에서 이벤트 트리거에 적용시키면 끝



씬 이동 (동기 방식) & 에디터 종료

On Click() : 버튼 이벤트에 연결 시킬 함수 정의

  • Excute() : 씬 이동
    -> SceneManager.LoadScene("씬 이름");
    -> 동기적 씬 로드 (이 상태에서는 데이터가 많을 경우, 씬을 넘어가고 데이터가 뒤늦게 다 받아온다)

  • Exit() : 유니티 에디터 게임 씬 실행 종료



애니메이션 즉각 실행 방법

  • 파라미터를 사용하지 않고, 호출 즉시 바로 애니메이션이 실행되는 방법
    -> animator.Play("애니메이션 클립 이름");
profile
뉴비 개발자

0개의 댓글