Unity

    유니티의 메타(meta) 파일은 무엇인가?

    메타 파일이란?? 유니티에서 Asset을 Import하거나 새로운 파일을 (유니티 Assets폴더 안에) 생성하면 Unity 안에서는 다음과 같은 일이 일어난다. 유일한 ID값을 할당한다. Unity는 새로운 Asset을 발견하면 바로 그 Asset에게 하나밖에 존재하지 않는 Unique 한 ID를 부여한다. 이 ID는 유니티 내부적으로 Asset을 참조하는데 쓰인다. 그렇게 함으로써 유니티는 Asset의 이름을 수정하거나 위치를 바꿔도 부여한 ID를 통해 그 Asset을 찾을 수 있게 된다. 메타 파일을 생성한다. 메타 파일은 Asset을 식별할 수 있게 하는 값과 그 Asset에 대한 설정 값, 예를 들어서 크기, pivot 위치, 상태, ... 등,을 저장하는 파일이다. 메타 파일은 Asset이 존..

    AssetDatabase 클래스를 사용하여 스크립트에서 에셋 생성 및 수정

    Unity에서 에셋은 게임의 데이터를 저장하는 데 사용되는 파일입니다. 에셋에는 모델, 애니메이션, 사운드, 텍스처, 스크립트 등이 포함될 수 있습니다. Unity에서는 스크립트에서 에셋을 생성하고 수정할 수 있습니다. 이를 위해서는 AssetDatabase 클래스를 사용합니다. AssetDatabase 클래스 AssetDatabase 클래스는 에셋을 관리하는 데 사용되는 Unity의 기본 클래스입니다. 이 클래스는 에셋을 생성, 삭제, 수정, 검색하는 데 사용할 수 있습니다. 에셋 생성 AssetDatabase 클래스를 사용하여 에셋을 생성하려면 다음과 같은 단계를 수행합니다. AssetDatabase.CreateAsset() 메서드를 호출합니다. 메서드의 인수로 에셋의 데이터를 지정합니다. 예를 들어..

    Unity에서 패키지의 버전을 변경하는 방법

    Unity에서 패키지 버전을 관리하는 방법은 크게 두 가지가 있습니다. 하나는 PackageManager를 사용하는 방법이고, 다른 하나는 manifest.json을 사용하는 방법입니다. PackageManager를 사용하여 패키지 버전을 관리하는 방법은 간단합니다. 패키지 매니저 창에서 패키지를 선택하고, 버전 드롭다운 목록에서 원하는 버전을 선택하면 됩니다. 하지만, 패키지 매니저를 사용하여 패키지 버전을 다운그레이드하는 것은 약간 복잡합니다. 패키지의 종속성이 충돌할 수 있기 때문입니다. 이러한 문제를 해결하기 위해 manifest.json을 사용하여 패키지 버전을 직접 관리할 수 있습니다. manifest.json은 패키지의 정보를 포함하는 JSON 형식의 파일입니다. 버전 변경하는 방법 mani..

    Unity 카메라의 뷰포트를 설정하여 원하는 시야를 만들자

    Unity 카메라는 게임의 시각을 담당하는 중요한 요소입니다. 카메라의 뷰포트 설정을 통해 원하는 시야를 만들 수 있습니다. 이 글에서는 Unity 카메라의 뷰포트 설정에 대해 알아보겠습니다. 뷰포트 영역 뷰포트 영역은 카메라가 렌더링하는 영역을 설정하는 옵션입니다. 값은 0과 1 사이의 비율로 표현되며, (0, 0, 1, 1)은 전체 화면을 의미합니다. 뷰포트 영역을 사용하여 카메라의 특정 부분만을 표시하거나, 여러 개의 카메라를 사용하여 분할 화면 효과를 만들 수 있습니다. 예를 들어, 다음과 같이 뷰포트 영역을 설정하면 카메라는 화면의 중앙 25%만을 표시합니다. [SerializeField] private RectTransform m_ViewportRect; void OnEnable() { m_V..

    Camera : Orthographic과 Perspective

    Unity 카메라에는 두 가지 투영 방식이 있습니다. Orthographic 투영 방식과 Perspective 투영 방식입니다. Orthographic 투영 방식은 객체의 거리와 상관없이 동일한 크기로 렌더링합니다. 즉, 가까운 객체와 먼 객체의 크기가 동일합니다. 이러한 투영 방식은 2D 게임이나 2.5D 게임에서 주로 사용됩니다. Perspective 투영 방식은 객체의 거리에 따라 크기가 달라집니다. 즉, 가까운 객체는 크고, 먼 객체는 작게 렌더링됩니다. 이러한 투영 방식은 3D 게임에서 주로 사용됩니다. Orthographic 투영 방식의 Size 옵션 Orthographic 투영 방식의 Size 옵션은 렌더링 영역의 크기를 결정합니다. Size 값이 클수록 렌더링 영역이 커집니다. 예를 들어,..

    Animator State Transition : Has Exit Time

    Has Exit Time이란?? Has Exit Time은 Animator의 설정 중 하나로, 애니메이션 전환이 끝나기 전에 트랜지션을 할지 여부를 결정하는 옵션입니다. 이 옵션을 사용하면 특정 애니메이션 클립이 플레이어에 의해 완전히 재생된 후에만 트랜지션을 수행할 수 있습니다. Has Exit Time이 true로 설정된 경우 애니메이션은 지정된 시간 동안 실행된 후 자동으로 종료됩니다. Has Exit Time이 false로 설정된 경우 애니메이션은 플레이어의 입력이나 다른 이벤트에 의해 종료될 때까지 계속 실행됩니다. 이 옵션을 사용하는 이유는 애니메이션 클립이 완전히 재생되기 전에 트랜지션되면 자연스럽지 않은 전환 현상이 발생할 수 있기 때문입니다. 예를 들어, 캐릭터의 걷기 애니메이션 클립이 ..

    오브젝트 파괴 시 OnDestroy 이벤트 함수가 호출되지 않을 수 있다??

    Unity에서 GameObject를 삭제하면 OnDestroy 메서드가 호출됩니다. OnDestroy 메서드는 GameObject가 삭제되기 전에 실행되는 메서드로, GameObject의 자원 해제, 데이터 저장 등의 작업을 수행하는 데 사용됩니다. 하지만, OnDestroy 메서드의 호출은 보장되지 않습니다. 즉, GameObject가 삭제되더라도 OnDestroy 메서드가 호출되지 않을 수도 있습니다. 공식문서의 설명을 보면 MonoBehaviour를 상속 받는 객체가 파괴 될 때 호출된다고 적혀 있습니다. 이 글을 보시는 분들은 다들 이 부분은 알고 계실것이라 생각합니다. 그 아래에 중요한 내용이 적혀 있는데 OnDestroy는 이전에 활성화되어있던, 게임 오브젝트상에서만 호출됩니다. 즉, 호출이 ..

    월드 공간 지점을 스크린상의 지점으로 변환 : WorldToScreenPoint

    Unity에서 WorldToScreenPoint 메서드는 월드 공간의 지점을 스크린 공간의 지점으로 변환하는 데 사용됩니다. public Vector3 WorldToScreenPoint(Vector3 position) position : 월드 공간의 지점입니다. 이 메서드는 다음과 같은 스크린 공간의 지점을 반환합니다. 스크린 공간의 x좌표는 worldPoint의 x좌표와 카메라의 LookAt 방향의 x좌표의 비율에 해당합니다. 스크린 공간의 y좌표는 worldPoint의 y좌표와 카메라의 LookAt 방향의 y좌표의 비율에 해당합니다. 예제 다음은 WorldToScreenPoint 메서드를 사용하는 예제입니다. // 월드 공간의 좌표 (0, 0, 1)을 스크린 공간의 지점으로 변환합니다. Vector3..