유니티
-
유니티 화면 비율 고정 처리...4일지 2021. 9. 19. 22:59
WinAPI에서 드래그 종료를 체크할 방법에 대한 고민 드래그 종료를 감지하는 게 유니티에는 당연하게 존재하지 않으며 이것을 체크하기 위해 WinAPI를 사용해야 했다. 먼저 떠올린 건 콜백 이벤트. WinAPI에는 다양한 이벤트가 존재하고 해당 이벤트를 전달받은 뒤 수행할 내용을 따로 작성할 수 있기 때문에 해당 내용을 찾아봤다. c++ - WinAPI. Check if window resizing has been finished - Stack Overflow WinAPI. Check if window resizing has been finished I've got C++ application (used for share application's window via network). I need to ..
-
유니티 화면 비율 고정 처리...3일지 2021. 9. 18. 18:20
코루틴 사용 및 변경 처리 중 중복 변경 블록 이전에 문제가 됐던 것을 확인하여 코루틴을 사용하도록 변경하고 화면 변경 중에는 다시 코루틴이 발동하지 않도록 처리했다. ResolutionController.cs using System; using System.Collections; using UnityEngine; public class ResolutionController : MonoBehaviour { public float AspectX { get; set; } = 16; public float AspectY { get; set; } = 9; private float m_aspectRatio; private int m_screenSizeX; private int m_screenSizeY; priva..
-
유니티 화면 비율 고정 처리...2일지 2021. 9. 17. 21:17
특정 비율 고정 처리 구현 유니티의 Update 에서 화면 비율이 바뀐 것을 확인하여 변경 처리하도록 구현한다. ResolutionController.cs using System; using UnityEngine; public class ResolutionController : MonoBehaviour { public float AspectX { get; set; } = 16; public float AspectY { get; set; } = 9; private float m_aspectRatio; private int m_screenSizeX; private int m_screenSizeY; void Start() { m_aspectRatio = AspectX / AspectY; m_screenSize..
-
유니티 화면 비율 고정 처리...1일지 2021. 9. 16. 18:50
특정 화면 비율 고정 처리 원하는 화면 비율이 16:9 라고 할 때 화면의 가로나 세로를 기준으로 화면 비율을 고정하는 방법은 다음과 같다. aspectX = 16 aspectY = 9 aspectRatio = aspectX / aspectY Case 너비를 기준으로 높이를 맞추는 경우 → newHeight = newWidth / aspectRatio Case 높이를 기준으로 너비를 맞추는 경우 → newWidth = newHeight * aspectRatio
-
유니티...14일지 2021. 5. 17. 20:29
트리 뷰 계층적 구조를 가진 개체를 표시해줄 수 있는 IMGUI 컨트롤이다. ※ 트리 구조 데이터뿐 아니라 모든 유형의 데이터에서 사용 가능하다. - 트리 뷰 구조 TreeViewState 에디터의 트리 뷰 필드와 연결할 때 변경되는 상태 정보를 포함하며 유일하게 직렬화 가능한 클래스이다. TreeViewItem 개별 트리 뷰의 아이템에 관련된 데이터를 포함하며 에디터에서 트리 구조 모양을 만들 때 사용한다. BuildRoot 트리 뷰를 생성하기 위해 필요한 단일 추상 메서드이다. BuildRows 생성된 루트를 기반으로 행 리스트 구축을 처리하는 가상 메서드이다. 더보기 참고문헌 Unity2018.Documentation.트리 뷰
-
유니티...13일지 2021. 5. 12. 08:39
커스텀 에디터 자주 사용하는 컴포넌트에 대해 사용자가 더 편리하게 사용할 수 있도록 인스펙터를 조정해 주는 것이 커스텀 에디터이다. 이를 통해 게임 제작을 더 빠르고 효율적으로 할 수 있다. 다음과 같은 스크립트는 아래의 기본적인 인스펙터를 가지게 된다. LookAtPoint.cs using UnityEngine; [ExecuteInEditMode] public class LookAtPoint : MonoBehaviour { public Vector3 lookAtPoint = Vector3.zero; public void Update() { transform.LookAt(lookAtPoint); } } 이때, 새로운 스크립트로 커스텀 에디터를 작성하면 다음과 같이 변경해 줄 수 있다. LookAtPoin..
-
유니티...11일지 2021. 5. 10. 19:17
프로퍼티 드로어 스크립트에서 속성을 사용하거나 Serializable 클래스가 인스펙터 창에 표시되도록 하기위해 사용한다. 가령 아래의 스크립트를 오브젝트에 넣은 경우 인스펙터 창은 다음과 같다. Recipe.cs using System; using UnityEngine; public enum IngredientUnit { Spoon, Cup, Bowl, Piece } // Custom serializable class [Serializable] public class Ingredient { public string name; public int amount = 1; public IngredientUnit unit; } public class Recipe : MonoBehaviour { public In..
-
유니티...10일지 2021. 5. 3. 21:21
에디터 창 기본 EditorWindow를 상속받는 클래스를 통해 커스텀 윈도우를 생성할 수 있으며 다음의 과정을 통해 화면에 출력할 수 있다. EditorWindow를 상속받는 클래스 스크립트 생성 창을 여는 스크립트 함수 구현 창에 표시할 GUI 구현 이에 대한 간단한 예는 다음과 같다. using UnityEditor; using UnityEngine; public class MyWindow : EditorWindow { string myString = "Hello World"; bool groupEnabled; bool myBool = true; float myFloat = 1.23f; // Add menu item named "My Window" to the Window menu [MenuItem..