본문 바로가기
반응형

개발/Unity363

개발) 문자열 검색 필터(*와일드 카드 , 정규식 변환 활용하기) 문자열 검색 필터(*와일드 카드 , 정규식 변환 활용하기) 작업을 하다가 검색 / 필터의 형태로  문자열(String)을 검색하는 과정에서흔히 많이 사용하는 와일드 카드(*)를 가지고 검색을 하는 코드를 간단하게  포스팅한다.   /// /// 와일드카드(*를 포함한) 검색을 처리하는 함수 (GameObject 리스트를 필터링)/// /// GameObject 리스트/// 검색 쿼리 (와일드카드 지원, 자동 처리)/// 필터링된 GameObject 리스트private List FilterWithWildcard(List list, string query){ if (list == null || string.IsNullOrEmpty(query)) { return new List(); /.. 2025. 1. 31.
Unity) Main Thread Dispactcher (메인 쓰레드에서 사용하기) Main Thread Dispactcher (메인 쓰레드에서 사용하기) Unity 에서 어떤 동작을 다시 하기 위해서는 메인 쓰레드에서 동작을 하지 않으면 문제가 생기는 경우가 종종 생긴다.확정적으로 Unity의 메인 쓰레드에서 동작하는것을 보장하기 위한 코드이다.  using UnityEngine;using System.Collections;using System.Collections.Generic;using System;using System.Threading.Tasks; public class UnityMainThreadDispatcher : MonoBehaviour { private static readonly Queue _executionQueue = new Queue(); public vo.. 2025. 1. 27.
Unity Editor) Animator Preview 기능 만들기 Animator Preview 기능 만들기 Animator 는 Animation의 여러가지 상태를 자연스럽게 변경을 하는 과정에서 사용을 한다.그 과정에서 Animator의 Window를 켜서 해당 Animation을 선택해서 실행하는것이 너무 불편해서 Preview Editor를 만들었다.   애니메이션의 전환된 상태까지 확인하면 참 좋긴한데.너무 복잡해서 간단하게 Animation 선택 기능, Animation Speed(Time Scale) / Animation Frame을 확인할수 있도록 작업했다. Preview의 기능도 포함되어있기 때문에 해당 Animation을 초기화 시키는 Reset도 추가했다. 개발 하는 과정에서 좀 더 편하게 Animator를 확인이 가능하다. ★★★☆☆ 2025. 1. 15.
Unity) 곡선으로 이동 구현 하기(베지어 곡선, 스플라인곡선:Curve Point) 곡선으로 이동 구현 하기(베지어 곡선, 스플라인곡선:Curve Point) 여러가지 움직임을 구현하기 위해서 대표적인 곡선 2가지(베지어, 스플라인) 2 가지 형태를 테스트 했다. 포인트점은 간단하게 마우스 오른쪽으로  포인트 추가 / 근처의 포인트가 있으면 삭제의 메뉴가 나오고 해당 포인트를 선택해서 이동이 가능하게 구현했다. 베지어 곡선은 총 4개의 포인트를 기반으로 커브를 생성하는 가장 기본적인 곡선구현 방법이다.시작점 / 끝점 사이의 중간 제어점들이 곡선형태를 끌어당기듯이 영향을 미친다.각 구간의 연결점으로 이어지고  4개의 제어점으로 곡선을 정의한다.복잡하고 자연스러운 곡선을 만들때 자주 사용한다.  특징베지어  곡선곡선스플라인 구성 방식하나의 곡선(모든 제어점이 하나의 곡선에 영향).여러 구간.. 2025. 1. 13.
Unity) 빌드 전/후 처리 순서 확인(IprepreocessBuildWithReport, PostProcessBuildAttribute) 빌드 전/후 처리 순서 확인(IprepreocessBuildWithReport, PostProcessBuildAttribute) Unity 에서 빌드를 진행하다보면 전처리, 후처리 코드를 작성하는 경우가 있다.해당 전처리와 후처리 코드에서는 우선순위가 있는데 해당 우선순위를 간단하게 표시해주는 기능을 작업했다.    Unity Doc - IPreprocessBuildWithReport  :  [링크] Unity - Scripting API: IPreprocessBuildWithReportSuccess! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we.. 2025. 1. 10.
Unity) 런타임 프로파일링 (Capturing Profiler Stats at Runtime) 고도화 런타임 프로파일링 (Capturing Profiler Stats at Runtime) 고도화기존에 사용하던 런타임 프로파일링을 필요한 정보를 간략하게 처리해서 사용하기 위해서 코드 수정을 진행했다. 기존 코드 : [링크] Unity) 런타임 프로파일링 (Capturing Profiler Stats at Runtime)런타임 프로파일링 (Capturing Profiler Stats at Runtime)Unity로 개발을 진행하다보면 런타임 상황 / 플랫폼 및 실제 기기 에서 테스트하는 과정에서 여러가지를 개발적인 요소를 확인해야하는 상황drehzr.tistory.com 상황에 따라 3가지 레벨에 따라 프로파일링 정보를 노출하는 것을 제한했다.기본적으로는 FPS를 가장 기본으로 표시하는 필요에 따라 커스텀이.. 2025. 1. 6.
문제해결)Uniy)Failed to import package with error: Couldn't decompress package UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) Failed to import package with error: Couldn't decompress package UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) Unity Package를 Import 하는 과정에서 발생한 에러이다. 1. Package가 정상적이지 않는 경우2. Path 경로에 한글이나 해당 Unity Asset경로가 아닌경우  Package의 경로는 Import 하고자하는 Unity Project의 영어로 이름을 변경이후에 Import 하면 정상적으로 Import 진행이 된다. ★☆☆☆☆ 2025. 1. 6.
문제해결)Unity) Invaid AABB inAABB Invaid AABB inAABB  해당 오류는 주로 오브젝트의 경계(Bounds)가 유효하지 않거나 손상되었거나, 0인경우에 발생한다.대부분 UI의 요소와 관련이 있는 경우가 많고 Uniy 에서 경계를 계산하지 못하는 경우에 발생한다.  RectTransform의 값이 0 또는 Nan인 경우잘못된 Scale 혹은 Roation인 경우손상된 Prefab 또는 Component UI 요소를 동적으로 수정하는 과정에서 발생순환적인 레이아웃 종속성  ★☆☆☆☆ 2025. 1. 5.
Unity) 스테인드 글라스 효과(Stained Glass) 스테인드 글라스 효과(Stained Glass)  색유리를 이어 붙이거나 유리의 색을 칠해서 무늬나 그림을 나타낸 유리 공예로 종교의 건물의 장식같은 곳에서 많이 볼수 있다. 빛이 반사되면 좀더 아름다운 색으로 표현되어서 고딕 양식에서 내/외부에서 많이 사용했다고 한다. 조각을 좀더 세부화 화거나 아웃라인의 컬러를 지정이 가능하게 작업했다. Voronoi Digram을 활용해서 MainTexture의 영역을 나누고 해당 영역의 아웃라인을 추출해서 아웃라인의 컬러를 지정이 가능하도록 했다. 투명한 값을 셋팅하면 여백으로 보이고 아웃라인의 색을 체우면 다음과 같이 나온다.컬러 값은 랜덤하게 셋팅을 했다. 나중에 해당 기능을 사용하고 싶으면 특정 값들을 셋팅하게 하면 될것 같다.MainTexture를 기준으로.. 2025. 1. 2.
Unity) 순차적인 Task 처리하기 위한 유틸 코드 순차적인 Task 처리하기 위한 유틸 코드 작업을 하다보면 async 형태로 작업을 하는 Task 코드를 사용하는 과정에서순차적인 순서에 대한 보장을 하는 코드가 필요할때가 있다. 예를 들어서 선행 처리가 보장되어야하는 항목들로예시를들면 광고를 노출시키는 과정에서 다음과 같은 선행이 필요하다. 광고 SDK 로드 -> 광고 로드 -> 광고 시청 -> 광고 종료다음과 같은 형태의 코드를 보장하기 위해서 여러가지 방법으로 작업이 가능한데 순차적인 Task를 보장하는 코드를 간단하게 만들어 보았다.  public class TaskChain : Singleton{ private readonly List> _taskList = new(); private readonly CancellationTokenS.. 2024. 12. 18.
Unity) Missing Component 체크하기 Missing Component 체크하기작업을 하다보면 예기지 못하게 속성이 Missing으로 링크가 정상적이지 않는 경우가 생긴다.Missing으로 표시가되는건 .meta 가 변경이되어서 읽을수 없는 경우혹은 GUI가 변경이 되는 경우이전에 사용된 Asset이 삭제,혹은 이동이 되어서 연결이 끊어진 경우 다양하다.   'console.warnicon' 아이콘으로 노출var count = Utill.FindMissingReferences(_gameObject);if (count > 0){ Debug.LogWarning($"Missing in Component :: {_gameObject.name} : {count}");}public static int FindMissingReferences(Game.. 2024. 12. 9.
Unity)UI Toolkit Debugger UI Toolkit Debugger UI 툴킷 디버거는 UI 요소를 실시간으로 검사하고 디버깅하는 데 사용할 수 있는 툴입니다.UI 계층 구조를 시각적으로 표현합니다.이를 사용하여 각 UI 요소의 상태와 프로퍼티를 검사할 수 있습니다. Window의 마우스 오른쪽 메뉴로 UI Toolkit Debugger를 선택한다.    해당 Window의 UI 구성과Layout 의 margin / border 혹은 Focusable 등 여러가지 UI의 요소를 확인이 가능하다. Unity Edior 에서 Window를 구성하거나 Profiler 하는 과정에서 유용하다.Window의 Size,Name, Focusable등  여러가지 속성들이 확인이 가능하다. Unity UI 툴킷 디버거 : [링크] UI 툴킷 디버거 -.. 2024. 11. 11.
Unity) 홀로그램 효과 쉐이더 홀로그램 효과 쉐이더 내용  Shader "Custom/HolographyShader"{ Properties { _MainTex ("Main Texture", 2D) = "white" {} // 기본 텍스처 _NoiseTex ("Crack Pattern Texture", 2D) = "white" {} // 크랙 패턴 노이즈 텍스처 _Color ("Base Color", Color) = (1, 1, 1, 1) // 기본 색상 _MousePos ("Mouse Position", Vector) = (0, 0, 0, 0) // 마우스 위치 _NoiseScale ("Noise Scale", Float) = 10.0 // 크랙 패턴 스케일 .. 2024. 11. 8.
문제해결) 패키지 Error when executing git command. git: 'credential-winstore' is not a git command. See 'git --help'. fatal: could not read Username for 'https://gitlab.com': terminal prompts disabled Error when executing git command. git: 'credential-winstore' is not a git command. See 'git --help'.    fatal: could not read Username for 'https://gitlab.com': terminal prompts disabled Unity Package를 가져오는 과정에서 갑자기 'terminal prompts disabled' 오류와 함께 받아지지 못하는 현상이 생겼다.나는 GitLab에서 2FA 형태로 로그인을 하고 있었는데 기존에는 잘 되다가 갑자기 이번에 되지 않았다.인증 방식이 여러가지가 있는데 Https 방식과 SSH 형식을 자동으로 변환해주는 명령어로 해결했다.Git Bash에 해당 명령.. 2024. 11. 6.
문제해결)The reference script on the Behaviour(Game Object '')is missing! The reference script on the Behaviour(Game Object '')is missing! Unity 에서 갑자기 GameObject의 missing 이라는 워닝이 발생하기 시작했다.해당 Component는 정상적인데 이상하게 해당 경고가 계속 발생한다.여러가지 Unity Project의 상황에 따라 여러가지 방법들을 해봐야 한다. 문제가 되는 스크립트 파일을 삭제, 이름 변경, 이동으로 인한 .meta 파일의 손상스크립트 컴파일 에러,git branch 이동으로 이한 meta 파일의 비정상적인 import 문제가되는 Script를 Reimport 하면 해결이 된다. Unity Project도 특정 순간에 Project Asset 을 읽어오는 형식으로 내부에서 캐시로 데이터를 관.. 2024. 11. 6.
반응형