본문 바로가기
반응형

UI20

유니티 UI - Text Mesh Pro 한글 깨짐 현상 해결하기 Unity 전체 링크 텍스트 메시 프로를 사용할 때, 아래와 같이 한글이 깨져서 네모로 나오는 현상이 발생한다. LiberationSans SDF 기본 폰트가 한글을 지원하지 않기 때문에 발생하는 현상이다. 무료 폰트 다운로드 구글에서 무료 폰트를 검색해서 원하는 폰트를 다운로드 받자. https://gongu.copyright.or.kr/gongu/bbs/B0000018/list.do?menuNo=200195&bbsSeCd=03 무료폰트(목록) | 공유 마당 gongu.copyright.or.kr 여기서는 김정철_명조체를 사용하였다. 다운로드 받은 후 ttf 파일을 유니티로 복사한다. ttf 파일을 Asset으로 만들기 [Window] → [TextMeshPro] → Font Asset Creator .. 2022. 10. 10.
유니티 UI - PlayerPrefs로 드롭다운 목록 관리하기 (Control TextMeshPro Dropdown with PlayerPrefs) Unity 전체 링크 TextMeshPro의 기능 중 하나인 Dropdown을 사용해보자. 그리고 최근에 선택한 옵션이 다음 게임 실행시에도 동작하도록 PlayerPrefs로 저장해보자. [UI] → [Dropdown - TextMeshPro]를 추가한다. 드롭다운에는 기본적으로 Option A, B, C가 있다. 여기서 삭제해도 되지만 이번에는 스크립트로 관리하자. DropDownController.cs를 Dropdown에 추가한다. using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; public class DropDownController : MonoBehaviour { TMP_Dropdo.. 2022. 8. 10.
유니티 UI - 코루틴 메시지 큐로 순서대로 함수 실행하기 (Execute Coroutines Run in Order using Message Unity 전체 링크 간단한 토스트 메시지 만들기 (Toast Message)를 TMPro를 이용하여 수정하면 아래와 같다. 그리고 큐브를 클릭할 경우 클릭 횟수를 보여주도록 메시지를 수정하였다. 여기서, 메시지가 많은 경우 코루틴이 순서대로 동작하도록 코드를 수정해보자. ToastMsg.cs는 Ctrl + Shift + N으로 빈 게임오브젝트를 만든 후 추가하자. 그리고 Canvas에서 만든 Text (TMP)를 스크립트에 추가한다. (Canvas는 보기 편한대로 적절히 배치한다.) using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; public class ToastMsg : MonoBeha.. 2022. 7. 28.
유니티 - UI가 있는 경우 Raycast 제한하기 (Detecting when a touch is over UI element) Unity 전체 링크 Raycast는 오브젝트를 찾을 때 유용하다. 그런데 UI가 가리고 있음에도 Raycast가 동작한다면 기능이 어색할 수 있다. 따라서 UI를 감지한 경우에는 Racast를 제한하도록 해보자. Ctrl + Shift + N으로 빈 오브젝트를 만든 후에 CameraRaycast.cs를 추가하자. using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraRaycast : MonoBehaviour { RaycastHit hit; void Update() { if (Input.GetMouseButton(0)) { Ray ray = Camera.main.ScreenPointT.. 2022. 7. 28.
유니티 UI - Scale With Screen Size로 캔버스 UI 크기 자동 변환하기 Unity 전체 링크 아래와 같이 UI에 Text가 있다. 이 Text를 어떤 화면에서도 왼쪽 위로 고정하기 위해서는 Anchor 기능을 설정할 필요가 있다. 화면을 변환하면 아래와 같이 같은 위치에 고정이 된다. 하지만 글자 크기도 고정되어 화면의 크기에 따라 UI가 보기 싫어진다. Canvas의 [Canvas Scaler] → [UI Scale Mode]를 Scale With Screen Size로 변경하면 간단히 해결할 수 있다. 아래는 Scale With Screen Size로 설정한 결과다. Unity Plus: Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store H.. 2022. 7. 4.
유니티 UI - Text Mesh Pro 텍스트에 그림자 효과 넣기 (Drop Shadow) Unity 전체 링크 Text에 그림자를 추가하기 위해서는 아래와 같이 Shadow 컴포넌트를 추가했었다. 그러나 Text Mesh Pro에서는 Shadow 컴포넌트를 추가해도 아무 반응이 없다. 텍스트 메쉬 프로에는 그림자 효과가 내장되어 있다. 그림자 효과를 위해서는 바로 아래의 Material을 수정하면 된다. (Shadow 컴포넌트는 삭제) Underlay를 체크하고 Softness 슬라이드를 이동해보자. 그리고 Offset을 적절히 변경해보자. 그림자 효과가 나타나는 것을 알 수 있다. 또한 Outline을 선택하면 간단히 외곽선 효과를 줄 수 있다. Unity Plus: Easy 2D, 3D, VR, & AR software for cross-platform development of game.. 2022. 7. 4.
유니티 에셋 - 런타임 파일 브라우저로 파일 저장하기 (Save Files using Runtime File Browser) Unity 전체 링크 런타임 파일 브라우저로 파일 업로드하기 간단한 파일 브라우저(Simple File Browser)에서 파일을 저장해보자. 파일 업로드의 예시 코드에서 파일을 저장하는 코드는 아래와 같이 주석으로 처리되어 있다. // Show a save file dialog // onSuccess event: not registered (which means this dialog is pretty useless) // onCancel event: not registered // Save file/folder: file, Allow multiple selection: false // Initial path: "C:\", Initial filename: "Screenshot.png" // Title: .. 2022. 7. 2.
유니티 에셋 - 런타임 파일 브라우저로 파일 업로드하기 (Upload Files using Runtime File Browser) Unity 전체 링크 런타임 파일 브라우저로 파일 저장하기 유니티 PC 버전에서 런타임에 파일 브라우저를 이용해 파일을 불러오고 싶을 때가 있다. 만들어놓은 게임 맵(스테이지)을 불러오거나, SAVE 파일 등을 불러올 때 파일 브라우저가 있으면 편리하다. 간단한 파일 브라우저(Simple File Browser)를 이용해보자. 아래는 런타임에 파일 브라우저를 사용할 수 있는 무료 에셋이다. https://assetstore.unity.com/packages/tools/gui/runtime-file-browser-113006 Runtime File Browser | GUI 도구 | Unity Asset Store Use the Runtime File Browser from yasirkula on your .. 2022. 6. 29.
(6) 버튼에 이벤트 연결하기 - 파이 메뉴(Pie / Radial Menu) 만들기 Unity 전체 링크 파이 메뉴 만들기 (Pie / Radial Menu) (1) 중심 게이지 만들기 (2) 버튼 만들기 (3) Tooltip 만들기 (4) Text 자동 크기 조절 (5) 버튼 배치하기 (6) 버튼에 이벤트 연결하기 마지막으로 만들어진 파이 메뉴의 버튼에 적절한 이벤트를 연결해보자. 빈 오브젝트 TestEvent를 생성한 후 TestEvent.cs를 추가한다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class TestEvent : MonoBehaviour { public void Test1() { Debug.Log("Test1"); } public void Test2() {.. 2022. 5. 10.
반응형