728x90 분류 전체보기79 Unity, 스토어별 리뷰 팝업 띄우기 앱 내의 평점 유도 팝업 게임 평점 팝업을 띄우고 싶은 경우가 생깁니다. 이 점수는 실제로 앱 평가에도 많은 영향을 주고 참여도 및 점수가 높으면 앱이 조금이라도 더 노출될 확률이 생깁니다. 게임에 자연스럽게 오버레이가 되어 리뷰 요청을 하도록 기능을 넣을 수 있습니다. 앱스토어 리뷰 평가의 경우 유니티에서 내장 함수가 있으며, 구글 플레이 스토어 리뷰 평가는 따로 API를 사용해야합니다. 아래의 기능을 사용하기 전에 Play Core 라이브러리를 요구하기에 설치해주셔야 합니다. 스크립트 using System; using System.Collections; using UnityEngine; #if UNITY_ANDROID using Google.Play.Review; #endif public class.. 2023. 5. 25. Unity, 에셋 FileID 가져오기 Local identifier in file 에셋의 파일 아이디를 가져오는 기능이 필요했는데, 아무래도 유니티에서는 지원하는 기원은 아닌가 보네요. 그저 구글링해서 얻은 기능이고 기록용으로 남깁니다. 스크립트 #if UNITY_EDITOR using System.Reflection; using UnityEditor; public static class UnityEditorUtils { /// /// 에셋의 파일 아이디 가져오기 /// /// /// public static int GetAssetFileID(UnityEngine.Object unityObject) { PropertyInfo inspectorModeInfo = typeof(SerializedObject).GetProperty("inspect.. 2023. 5. 14. Unity, 박스 콜라이더 기즈모 Box Collider Gizmo Box Collider 기즈모를 볼 수 있는 스크립트입니다. 여러개의 콜라이더를 씬뷰에서 볼 수 없으니 디버깅하는데 불편함이 있어 작성하게 되었습니다. 스크립트 에디터 스크립트로써, 반드시 'Editor'라고 명시된 폴더 안에 생성하셔야합니다. BoxColliderEditor.cs using UnityEngine; using UnityEditor; [CustomEditor(typeof(BoxCollider))] public class BoxColliderEditor : Editor { private void OnSceneGUI() { BoxCollider boxCollider = target as BoxCollider; if (boxCollider == null) { r.. 2023. 5. 11. Unity, Transform 인스펙터 커스텀 커스텀 에디터 스크립트 NGUI를 사용하던 지원하는 기능 중, 트랜스폼 컴포넌트를 커스텀해주는 기능이 있습니다. 단순하게 'P', 'R', 'S' 버튼을 눌러주는 것만으로 초기화 처리를 해주는 기능이 있는데, 이 기능을 개인적으로 사용하고자 작성했습니다. 스크립트 에디터 스크립트로써, 반드시 'Editor'라고 명시된 폴더 안에 생성하셔야합니다. TransformInspector.cs using UnityEngine; using UnityEditor; [CanEditMultipleObjects] [CustomEditor(typeof(Transform), true)] public class TransformInspector : Editor { [System.Flags] enum Axes : byte { N.. 2023. 5. 9. SPUM 최적화 처리 (드로우콜, 배칭) 최근 SPUM 에셋을 구매하여 사용 중인, 유저입니다. SPUM을 사용하다 보니 약간의 애로 사항이 생겼고, 관련되어서 해결법을 공유하고자 작성합니다. 주관적인 해결 방법일 수 있습니다. 기본적 제공되는 SPUM 캐릭터 프리팹을 사용하면, 캐릭터 프리팹 하나를 사용할 때마다. 대략 Batching 13~20 사이 정도가 발생합니다. 단순하게 10마리만 사용한다고 해도 대략 130 ~ 200에 육박하는 Batching 수치를 볼 수 있습니다. 원인 원인으로는 아래의 두 가지 내용이 있습니다. 1. 캐릭터에서 사용되는 리소스 이미지에 대한 아틀라스가 만들어지지 않은 상태의 단일 스프라이트 사용 2. 개별적으로 사용되는 메테리얼 아틀라스로 묶기 먼저 유니티에서도 아틀라스 사용을 권장하고 있습니다. 단순하게 이.. 2023. 5. 7. NGUI, BBCode 태그 제거하기 (Replace) BBCode단순하게 BBCode 기능을 비활성화할 수 있지만(supportEncoding = false), 반드시 이용은 하나 유저 입력을 막고 싶은 경우가 있습니다. 정규식과 string의 Replace를 적절히 이용하면 쉽게 제거할 수 있습니다.스크립트public static class Utils { public static string RemoveBBCode(string input) { string output = input; // Remove [b], [i], [u], [s], [sub], [sup] tags output = Regex.Replace(output, @"\[(b|i|u|s|sub|sup)\]", ""); // Remove [url=...] tags with variable-lengt.. 2023. 4. 8. NGUI, SafeArea를 통한 아이폰 노치 영역 대응하기 UIAnchor 노치 대응 NGUI를 이용하여 UI를 표현하고 있었지만, 최근 출시되는 기기들이 다양한 디스플레이로 나오기 시작했습니다. 이로 인해서 개발자들은 각각 상황에 맞게 대응을 해주어야하는 상황이 되었습니다. 펀치홀, 노치, 다이나믹 아일랜드 등 여러가지의 이름으로 개발자를 괴롭혀 왔지만, 유니티 2021.3 버전 이상부터는 SafeArea 클래스를 제공하고 있습니다. 이는 기기 화면에서 물리적인 화면의 영향 없이 온전하게 보이는 영역을 Rect로 확인할 수 있습니다. 이로써 SafeArea 클래스를 이용하여, UIAnchor 스크립트에 추가하여 안전한 영역에 앵커 자리를 잡도록 적용할 수 있습니다. 스크립트 UIAnchor.cs의 Update() 함수 안에, 아래와 같이 SafeArea 주석으.. 2023. 3. 30. Unity, 작업 중 Editor가 점점 느려지는 경우 작업하다보면 에디터가 점점 느려진다?프로젝트 작업을 하다보면, 알게모르게 메모리가 누수가 되어 누적이 되고, 이는 에디터가 느려지고 작업에 영향을 줍니다. 특히 게임 플레이를 몇 번 하다보면 크게 체감이 됩니다. 유니티 프로파일를 하다보면 알 수가 있지만, 사용하지 않은 리소스들이 메모리를 차지하고 있고, 이는 대체적으로 에디터에서는 로드한 일부 Resource들을 메모리에서 계속 점유하고 있는 작동 원리에 이유가 있습니다. 몇 회 전에 실행한 리소스들도 들고 있는 경우가 종종 발견되곤 합니다. 이 경우 보통 유니티를 껐다가 다시 켜서 해결하기도 하지만, 이를 자동화 방면으로 조금이나마 해결할 수 있을까 싶어서 방법을 알아보았습니다.스크립트EditorModeMemoryManager.cs#if UNITY_.. 2023. 3. 18. C#, 고정된 해쉬 값 가져오기 기본 제공되는 함수 'GetHashCode()' C#에서 지원하는 GetHashCode()가 있습니다. string에서 함수를 호출하면, string이 고유한 인덱스로 변환 처리가 됩니다. 그래서 이를 통해 문자열을 통해서 고유한 인덱스를 얻고 싶을 때 사용할 수 있습니다. private static void Main(params string[] args) { string text = "NAME"; int hashId = text.GetHashCode(); // hashId = 237439930; hashId = text.GetHashCode(); // hashId = 237439930; hashId = text.GetHashCode(); // hashId = 237439930; // 항상 같은 값을 가.. 2023. 3. 18. 이전 1 2 3 4 5 6 ··· 9 다음 반응형