게임엔진
[Unity] 이미지 피벗 기준 클릭 위치 구하기 0.0 ~ 1.0
// Take an image and a screenPosition. Return the ptLocationRelativeToImage01 relative to the image (where x,y between 0.0 and 1.0 are on the image, values below 0.0 or above 1.0 are outside the image).public static bool GetPositionOnImage01 ( UnityEngine.UI.Image uiImageObject, Vector2 screenPosition, out Vector2 ptLocationRelativeToImage01 ){ ptLocationRelativeToImage01 = new Vector2(); RectTr..
[Unity] PointEventData 클래스
Unity의 PointEventData 클래스는 터치 또는 마우스 입력 이벤트에 대한 정보를 저장하는 클래스다.이 클래스는 InputModule 클래스에 의해 사용되며, InputModule 클래스를 통해 터치 또는 마우스 입력 이벤트에 대한 정보를 얻을 수 있다. 속성position: 터치 또는 마우스 포인터의 위치clickCount: 클릭 횟수clickTime: 클릭 시간delta: 터치 또는 마우스 포인터의 이동량dragging: 터치 또는 마우스 포인터가 이동 중인지 여부button: 터치 또는 마우스 버튼phase: 터치 또는 마우스 이벤트의 단계pointerId: 터치 또는 마우스 포인터의 ID 클래스의 메서드GetPosition: 터치 또는 마우스 포인터의 위치를 가져오는 메서드GetCli..
[Unity] 게임 엔진에서 컴포넌트 찾기 FindObjectsByType VS FindObjectsOfType
차이점요구하는 인자가 딱히 없는 FindObjectsOfType() 을 편하게 사용하는 경우가 상대적으로 더 많다고 하는데, 두 함수 사이에는 큰 성능상의 차이가 있다. 간단히 말하면, FindObjectsOfType() 함수는 내부적으로 찾은 컴포넌트들을 InstanceID 기준으로 정렬을 수행한 뒤 그 결과를 반환하게 된다. InstanceID 기준으로 정렬이 불필요한 경우라면 불필요한 연산이 내부에서 수행되는 꼴이고 보통은 이런 InstanceID 정렬은 불필요하다.즉, FindObjectsByType 함수를 사용하되, 명확하게 FindObjectsSortMode.None 인자를 넘겨서 InstanceID 정렬을 수행하지 않고 얻어오는 것이 더 좋다. 유니티 게임 엔진에서 컴포넌트 찾기 FindOb..
[Unity] 카메라 스테이킹 (Camera Staking)
개념카메라 스테이킹이라는 기술은 단일 카메라가 아닌 여러 카메라를 사용해서 렌더링 이미지를 만들고 해당 렌더링 이미지를 순차적으로 겹쳐서 표현하는 방식이다. Unity 카메라 컴포넌트는 렌더링에 필요한 것보다 많이 사용하지 않도록 해야하는데. 예를 들어, 여러 카메라를 사용하여 UI 레이어를 구성하게되면 모든 카메라 컴포넌트는 실제로 유용하게 사용되지 않더라도 오버헤드를 유발한다. 고사양 타겟 플랫폼에서는 무시할 수 있는 수준이지만, 저사양 또는 모바일 플랫폼에서는 각각 최대1ms의 CPU 처리 시간이 소요될 수 있다.렌더링 순서1. 레이어 컬링 (레이어 제외02. 절두체 컬링 (카메라 외부 프로젝트 제외)3. 오클루전 컬링 (완전히 숨겨진 오브젝트 제외)카메라 개수에 따른 성능 확인 (Built in)..
[Unreal] EnhancedInput 시스템이란?
언리얼 엔진 5의 Enhanced Input 시스템은 기존의 입력 시스템(Input System)을 대체하여 보다 유연하고 강력한 입력 처리를 제공한다. 이 시스템은 다양한 입력 디바이스를 통합 관리하고, 더 복잡한 입력 매핑과 처리 로직을 지원한다. Enhanced Input의 주요 개념Input Mapping Contexts:입력 맵핑 컨텍스트는 여러 입력 액션(Input Actions)을 그룹화하는 역할을 한다.특정 상황이나 상태에서 활성화될 수 있으며, 여러 컨텍스트를 겹쳐 사용할 수 있다.예를 들어, 걷기 상태와 운전 상태에 따라 다른 입력 맵핑 컨텍스트를 사용할 수 있다.Input Actions:입력 액션은 단일 입력 이벤트(키 누르기, 마우스 클릭 등)를 나타낸다.디지털 입력(키보드, 버튼..
[Unity] Localization 간단 사용법
About Localization | Localization | 1.1.1 About Localization | Localization | 1.1.1About Localization Use the Localization package to configure localization settings for your application. Add support for multiple languages and regional variants, including: String localization: Set different strings to display based on locale. Use the Smadocs.unity3d.comPackage 설치하기 [Window > Package Manager]를 선..
[Unity] UI - Localization (언어 번역) 레거시
인덱서를 사용해서 테이블에서 해당되는 언어로 string을 가져옴using System;using System.Collections;using System.Collections.Generic;using UnityEngine;public class Csv_loader_manager : Singleton_local{ // ------- Variables ------- List> m_csv_list = new List>(); string m_current_language = "english"; // Accessing to m_csv_list by value public object this[int _hash] { ..
[Unity] UI - 마인크래프트 형태 조합창
세팅public class Minecraft_inventory_setup : MonoBehaviour{ // 슬롯 오브젝트 담음 List m_inventory_slot_list = new List(); [ContextMenu("UI 인벤토리창 생성")] public void Create_crafting_set() { // 클리어 후 슬롯 생성 m_inventory_slot_list.Clear(); for (int i = 0; i ()); } } [ContextMenu("UI 인벤토리창 삭제")] public void Delete_crafting_set() {#if UNITY_EDITOR // 삭..
[Unity] UI - 로그인 및 채팅 시스템
구조public e_chat_state current_state = e_chat_state.INTRO_SCREEN;// ------- BASE VARIABLES -------[Header("Current_info")]public User_info user_info;public Canvas sign_up_canvas;public Canvas login_canvas;public Canvas edit_canvas;public Canvas chat_canvas;// ------- SIGN UP -------[Header("Sign_up_info")]public InputField sign_up_id_field;public InputField sign_up_pw_f..
[Unity] 모바일 해상도 대응
해상도 (resolution)이미지/영상 등을 표현하는 데 몇 개의 픽셀(pixel)로 이루어졌는지를 폭넓게 나타내는 말해상도와 관련된 내용은 유니티 툴의 Game 창에서 추가하거나 설정할 수 있다.캔버스모든 UI 요소는 Canvas 안에 위치해야 한다. 캔버스는 Canvas 컴포넌트가 있는 게임 오브젝트이며 모든 UI 요소는 반드시 어떤 캔버스의 자식이여야 한다.UI 요소 생성, 예를 들어 GameObject > UI > Image 메뉴를 사용하여 이미지를 생성하면 (씬에 아직 캔버스가 없을 경우)자동으로 캔버스를 생성한다. 이 때 이 UI 요소는 이 캔버스의 자식으로서 생성된다.캔버스 영역은 씬 뷰에서 사각형으로 나타나므로 매번 게임 뷰가 보이게 하지 않고도 UI 요소를 배치하기 용이하다. Canva..