Programming97 [Unity] 조명 설정 방법을 알아가자! (Part.1) - Lightmap 만들고 적용하기 ✔ Unity - Lightmap 이란? 유니티에서 비주얼에서 가장 중요한 조명 설정입니다. Light 이론만해도 어마어마한 분량이라 기본 이론과 많이 사용되는 핵심 기능들만 설명드리겠습니다. Lightmap 이란 말을 들어보셨을 겁니다(?) Lightmap의 활용은 대게 움직이지 않는 정적인 물체에 대해서 미리 조명효과를 설정하여 텍스쳐를 만들어버립니다. 이것이 Baked Lightmap 입니다. 맵 구웠다(?) 라고 많이 얘기합니다. 유니티 프로젝트를 URP(Universal Render Pipeline)로 생성합니다. 프로젝트가 열리면 이렇게 샘플로 만들어져있습니다. 예쁘죠? ㅎㅎㅎㅎ 지면(Ground)오브젝트을 클릭해서 Inspector 창에 보면 위에 설명했던 LightMap이 보입니다. 지면(.. 2022. 3. 4. [Unity] Polybrush - NullReferenceException [Solustion] ✔ Unity Polybrush 오류 유니티에서 제공하는 Polybrush 패키지를 사용할때 아래와같은 에러가 나타날때가 있다. NullReferenceException: Object reference not set to an instance of an object UnityEngine.Polybrush.OverlayRenderer.OnRenderObject () (at Library/PackageCache/com.unity.polybrush@1.0.2/Runtime/Scripts/MonoBehaviour/OverlayRenderer.cs:202) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&) ● 해결방법 듀얼 모니터 사용시 Game View.. 2022. 3. 2. [Unity] 유니티 기초 탈출기 - Part.02 - UI 편 ( Toggle) ✔ Unity 기초 탈출기 - Toggle 편 Toggle Group, 라디오 버튼 안녕하세요. 기초 탈출기 포스트가 너무 늦어졌네요. 빨리빨리 업데이트 하도록 노력하겠습니다. Toggle 버튼은 프로그램이나 웹사이트에서도 많이 보셨을 겁니다. 휴대폰 인증을 할때에도 "□ (필수) 개인정보 활용 동의" 이렇게 표시가 나와있고 □ 여기에 클릭을하면 ▣ 이렇게 체크되었다고 나타나죠? 이런 기능을 하는 것이 토글 버튼입니다. ● Toggle 버튼 생성 Hierarchy에 Canvas가 자동생성되고 그 아래 Toggle 버튼이 만들어졌죠? 한번 눌러봅시다. 시작버튼을 누르고 GameView에서 Toggle 버튼을 눌러봅니다. 토글버튼이 안보이시는 경우 해상도가 안맞아서 그럴수도 있으니 16:9로 맞추면 보일거에.. 2022. 1. 19. [Unity3D] 유니티에서 Timer 구현하기 - IEnumerator, System.Timers ✔ Unity Timer 1. IEnumerator로 구현 2. System.Timers.Timer로 구현 안녕하세요. 이번 포스트에서는 Timer(?) 특정시간에 맞춰 실행할 수 있는 방법을 설명드립니다. 방법은 여러가지가 있고 그 방법들에 대해서 설명드리겠습니다. 먼저 첫번째로 IEnumerator를 사용하는 방법입니다. ● IEnumerator void Start() { //코루틴 실행 StartCoroutine(Test()); } //Timer 구현 로직 IEnumerator Test() { while (true) { //To Do Debug.Log(System.DateTime.Now); //0.5초 자원 반환하고 기다림 yield return new WaitForSeconds(0.5f); } }.. 2022. 1. 11. [C#] String 데이터를 특정 문자, 문자열로 나누기 (String Split) ✔ String.Split 특정 문자나 문자열로 텍스트 나누기 너무나 많이 쓰는 함수이다. 문자열에서 특정문자나 문자열로 찾아 배열로 나누는 기능이다. ● 특정 문자로 나누기 string str = "우리,나라,만세"; string[] str_split = str.Split(','); //결과 //str_split[0] = 우리 //str_split[1] = 나라 //str_split[2] = 만세 ● 문자열로 나누기 string str = "우리..나라..만세"; string[] str_split = str.Split(new[] { ".." }, StringSplitOptions.None); //결과 //str_split[0] = 우리 //str_split[1] = 나라 //str_split[2] = .. 2022. 1. 6. [Unity3D] 스크립트에서 UI 크기 변경 - RectTransform(stretch 포함) ✔ RectTransform - UI size script로 변경하기 Get recttransform stretch top, left, right, bottom size and resize UI를 생성하면 기본적으로 RectTransform이 생성되며 Anchor Presets는 중앙에 위치한 상태로 생성된다. 위에서 생성된 UI는 width, height가 각각 100으로 정사각형 형태다. 그럼 저 width, height의 값을 어떻게 코드로 가져올 수 있을까? RectTransform에서는 width, height는 sizeDelta에서 찾을 수 있다. 아래는 확인한 결과 코드이다. RectTransform rectTransform = GetComponent(); Debug.Log(rectTrans.. 2022. 1. 6. [Unity3D] 마우스 더블 클릭 이벤트 ( UI, 3D Object ) ✔ Unity3D - MouseEvent DoubleClick Script - Object, UI 3D 오브젝트의 지원되는 마우스 이벤트의 경우 OnMouseDown(), OnMouseUp(), OnMouseOver() 등등이 있다. 다른건 다 있는데 클릭이나, 더블클릭 같은 경우에는 지원되지 않아 직접 만들어서 사용해야한다. (지원좀 해주지... ) 먼저 지원되는 기본적인 마우스 이벤트부터 알아보자 OnMouseDown() : 마우스가 눌러졌을때 발생되는 이벤트 OnMouseUp() : 마우스가 눌러진 상태에서 놓았을때 발생되는 이벤트 OnMouseEnter() : 마우스가 해당 객체의 콜라이더 범위에 들어왔을때 이벤트 OnMouseExit() : 마우스가 해당 객체의 콜라이더 범위에 밖으로 빠져나갔을.. 2021. 11. 24. [Unity3D, C#] 프로그램 윈도우 창 최소화, 최대화, 맨앞으로 활성화 ✔ C# Window user32.dll ShowWindow - MinimizeWindow, FullWindow 윈도우를 사용하면 창 최소화 최대화 버튼을 흔히 볼 수 있다. 프로그램에서 윈도우처럼 최소화버튼을 누르면 프로그램이 작업표시줄 밑으로 숨겨지고 최대화누르면 전체화면으로 되는 기능을 어떻게 만들까? user32.dll을 사용하면된다. 사용법은 아래와 같다. //창 속성 정의 [DllImport("user32.dll")] private static extern bool ShowWindow(IntPtr hwnd, int nCmdShow); //현재 활성화된 창의 IntPtr을 가져오는 함수 [DllImport("user32.dll")] private static extern IntPtr GetAct.. 2021. 11. 10. [C#] Xml 로드 할때 많이 발생되는 에러 [해결법] ✔ Xml Load Error 1. Data at the root level is invalid. Line1, position 1 2. XmlException: There is no Unicode byte order mark. Cannot switch to Unicode. 1. Data at the root level is invalid. Line1, position 1 - 이 에러는 에서 encoding 관련 발생되는 문제로 해결법은 아래와 같다. //발생 루트 XmlDocument xml = new XmlDocument(); xml.LoadXml(xmlString); //Solution XmlDocument xml = new XmlDocument(); xml.Load(xmlString); 엄청 간단하.. 2021. 11. 9. 이전 1 2 3 4 5 6 7 8 ··· 11 다음