프로그래밍/유니티
[유니티] 화면전환 효과 (탕탕특공대 따라하기)
0. 목표 탕탕특공대의 화면전환효과 구현해보기 Mask를 사용하면 될 것 같은데 유니티의 기본 Mask컴포넌트는 Mask이미지가 있는 부분만 보여준다. 이건 반대로 Mask이미지를 제외한 영역을 Mask하는게 필요하다. 1. 기본 Mask 적용해보기 먼저 Image를 만들고 이름을 [MaskImage]로 바꿔준다. Transform이나 Image컴포넌트는 건들지 않았다. 방금 만든 [MaskImage]의 자식으로 Image를 또 만들고 이름을 [MaskedImage]로 변경한다. 구분을 위해 Color값을 바꿨고, Width와 Height를 200으로 바꾸었다. (크기는 부모보다 크면 된다) 다시 [MaskImage]로 와서 Mask 컴포넌트를 추가해준다. Mask 컴포넌트가 적용되서 (100, 100)..
[유니티] 해상도 고정 & 빈 공간 처리
1. 해상도 고정 원하는 해상도는 아래 코드에 width, height에 놓으면 된다. void Awake() { Screen.sleepTimeout = SleepTimeout.NeverSleep; int width = 1080; int height = 1920; float res = (float)width / height; int deviceWidth = Screen.width; int deviceHeight = Screen.height; float deviceRes = (float)deviceWidth / deviceHeight; // SetResolution 함수 제대로 사용하기 Screen.SetResolution(width, (int)(((float)deviceHeight / deviceWidt..
[유니티] XML테이블 사용하기 (2)
1. 컨버팅 안하고 바로 불러오기 앞선 1편에서 XML테이블을 ScriptableObject로 만들어 사용하는 것을 알아봤다. 하지만 개발과정에서 테이블 값을 수정하고 매번 컨버팅을 하기가 귀찮을 수 있다. 이럴 땐 ItemXML 클래스에 아래 메소드를 추가해서 편하게 쓸 수 있다. public static ItemXML LoadDirect() { var t = Resources.Load("Table/Items") as TextAsset; if (t == null) return null; var serializer = new XmlSerializer(typeof(ItemXML)); using (var stream = new StringReader(t.text)) { return serializer.Des..
[유니티] XML테이블 사용하기 (1)
이런내용의 XMl파일을 유니티에서 써보자. using System; using System.IO; using System.Xml.Serialization; using UnityEditor; using UnityEngine; [Serializable] [XmlRoot("ItemContainer")] public class ItemXML : ScriptableObject { [XmlElement("Item")] public ItemInfo item; public void Save(string path) { #if UNITY_EDITOR AssetDatabase.CreateAsset (this, path); EditorUtility.SetDirty(this); AssetDatabase.SaveAssets ()..
[유니티] FPS 표기
[Header("[Fps Option]")] public int textSize = 48; private float _fpsTime; private void OnGUI() { int w = Screen.width; int h = Screen.height; GUIStyle style = new GUIStyle(); Rect rect = new Rect(20.0f, 0, w, h * 0.02f); style.alignment = TextAnchor.UpperLeft; style.fontSize = textSize; style.normal.textColor = Color.white; float msec = _fpsTime * 1000.0f; float fps = 1.0f / _fpsTime; string te..
[유니티] 안드로이드 번들 빌드 오류 모음
WARNING: The option setting 'android.enableR8=false' is deprecated. target api 31 문제 : 타겟 API에서 더 이상 R8을 지원하지 않는다. 해결법 : project setting => custom properties => android.enableR8=false //주석처리 Execution failed for task ':launcher:checkReleaseDuplicateClasses'. GooglePlayBilling 문제 : 중복 해결법 : googleplayplugins => com.google.play.billing 제거