본문 바로가기
반응형

개발889

Unity) 앱 위변조 방지 방법들 앱 위변조 확인 방법들특정 환경에서는 무력화될수 있습니다.탈옥/ 루팅된 기기에서는 작동하지 않습니다.메모리 위변조로 해당 플래그를변경하는 경우에도 파단이 되지 않습니다. if (!Application.genuine) { Debug.LogWarning("앱이 변조되었습니다! 종료합니다."); Application.Quit();}  if (Application.genuineCheckAvailable) { if (Application.genuine) { Debug.Log("정품 인증 확인됨"); } else { Debug.LogWarning("변조된 앱이 감지되었습니다!"); Application.Quit(); }} else { Debug... 2025. 2. 25.
Unity) 백그라운드 실행 옵션 (Run In Background) 백그라운드 실행 옵션 (Run In Background) Unity에서 백그라운드에서 실행 여부 설정을 하는 옵션이다.  Project Setting -> Resolution and Presentation - Run In background 체크Application.runInBackground의 기본 설정은 false입니다.Application.runInBackground 속성은 애플리케이션이 표시될 때만 Android에서 작동합니다.iOS에서는 Application.runInBackground 속성이 무시됩니다.웹에서 업데이트 루프는 애플리케이션이 백그라운드에 있을 때 약 1초에 한 번씩 실행됩니다.백그라운드에서 실행되는건 게임의 성능과 배터리 소모에 영향을 줄 수 있으므로, 프로젝트의 요구사항에 따라.. 2025. 2. 22.
Unity) OnGUI Attribute 작업하기 OnGUI Attribute 작업하기 개발과정에서 필요한 데이터를 확인하는 과정에서 매번 GUI를 가지고 만들기에는 부담스러워서 Manager 클래스와 함께 언제든지 필요하면 사용 가능하도록 Attribute로 만들었다. using System.Collections;using System.Collections.Generic;using UnityEngine;public class MonitorTest : MonitorBehaviour{ [Monitor(MonitorAttribute.MonitorAttributeType.Label, MonitorAttribute.AlignType.BottomRight, "BottomLeft Label")]public string bottomLeftLabel = default.. 2025. 2. 18.
Unity) 특정 주기마다 호출되는 코드 만들기 (PeriodicInvoker) 특정 주기마다 호출되는 코드 만들기 (PeriodicInvoker) 간단하게 특정 주기마다만 호출되는 코드를 만들고 싶었다.1초마다 호출되는 타이머 같은 기능이다.  using System;using System.Collections.Concurrent;using System.Threading;using System.Timers; // System.Timers.Timer 사용을 위한 네임스페이스using UnityEngine;public class PeriodicInvoker{ private readonly ConcurrentDictionary _tasks = new(); private readonly System.Timers.Timer _timer; // System.Timers.Timer 명시적으로 .. 2025. 2. 13.
Unity) RectTransform 스크린 좌표로 변환해서 위치값 찾기 RectTransform  스크린 좌표로 변환해서 위치값 찾기 특정 상황에서 Target Object를 기준으로 좌표를 처리해야하는 작업에서 유용하게 사용한 코드이다.  public Vector3 GetOffsetPosition(){ if (targetTranform == null || Camera.main == null) { Debug.LogError("Target Transform 또는 Main Camera가 없습니다!"); return Vector3.zero; } // 타겟의 월드 좌표 가져오기 Vector3 worldPosition = targetTranform.position; Vector2 screenPoint = RectTransfor.. 2025. 2. 12.
읽을거리)개발자도 '일잘러'가 되어야하는 이유 개발자도 '일잘러'가 되어야하는 이유원본 링크 : [링크] 개발자도 ‘일잘러’가 되어야 하는 이유 | 요즘IT요즘 개발자는 단순히 뛰어난 코드를 작성하는 것만으로는 성공하기 어렵습니다. 저 역시 주니어 개발자일 때, 능력의 부족함을 많이 느꼈습니다. 다만 그때는 ‘일잘러’가 된다기보다 개발yozm.wishket.com 개발자가 기술적 능력뿐만 아니라 소프트 스킬을 중요하게 여겨야 한다는 내용을 으로 협업, 소통, 그리고 비즈니스의 요구 사항을 이해하는 능력이 개발자의 역할을 강화시키며, 이러한 스킬을 갖추면 팀과 프로젝트에서 더 큰 기여를 할 수 있다는 점을 강조한다.결국, 개발자는 ‘일잘러’로서 소프트 스킬과 기술적 능력 모두를 갖추어야 한다.   기존에는 코드 작성만 했던 과거와 다는 다르게 코드 품.. 2025. 2. 10.
Unity) 2D Grid 만들기 ( 2D Grid ) 2D Grid 만들기 ( 2D Grid ) 몬스터의 크기나 특정 위치를 확인하기 위해서 격자를 처리하는 코드를 작업했다.단순히 나열하는것보다는 전체적인 크기를 가늠할때도 유용하게 사용이 가능하다.  인스펙터에서 격자를 쉽게 사용하기 위해서격자 사이즈 / 격자 개수 / 격자의 Offset / 격자 Color 를 설정이 가능하게 작업했다.  using UnityEditor;using UnityEngine;/// /// 2D 격자 그리기/// public class DrawGrid : MonoBehaviour{ [SerializeField] private float gridSize = 1.0f; [SerializeField] private int divisions = 10; [SerializeField] pr.. 2025. 2. 4.
개발) 문자열 검색 필터(*와일드 카드 , 정규식 변환 활용하기) 문자열 검색 필터(*와일드 카드 , 정규식 변환 활용하기) 작업을 하다가 검색 / 필터의 형태로  문자열(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) Sorting Layout 셋팅하기 Sorting Layout 셋팅하기Unity 에서 Sorting Layout은 2D 에서 렌더링 순서를 지정하는데 사용하는 Component로 여러가지 복합적인 그려지는 과정에서 주로 많이 사용하게 된다.   렌더링 그룹을 설정하게되면 해당 그룹에서의 우선순위를 지정하는 형태로 우선순위가 지정된다.    스프라이트의 포지션이나 정렬방식 설정  Sorting Layer 설정 및 Order In Layer 값 변경Sorting Layer 설정 및 Order In Layer 값 변경 [Project Settings] -[Tags and Layers]     기본적으로 Unity는 3D 의 깊이(Z - Depth)를 기준으로 처리가 되고 UI에서는 Hierarchy의 순서를 기준으로 렌더링된다.2D 의 특정 객.. 2025. 1. 23.
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.
문제해결)Git 명령어 에러 ~ Filename too long error Git 명령어 에러 ~ Filename too long error Git 에서 Push / Commit / Pull 등 여러가지 명령어를 사용하는 과정에서 다음과 같은 에러가 발생했다. 해결한 방법을 간단하게 포스팅한다.Window에서 Git 명령어를 사용하는 과정에서는 Window 파일 경로 제한(260자) 가 있어서 발생한다.따로 설정을 하지 않으면 해당 제한에 따라 다음과 같은 에러가 발생한다. Git 설정 변경으로 긴 경로를 허용하는 옵션 설정하는 방법으로터미널에서 다음과 같은 명령어를 입력한다.git config --global core.longpaths true git의 Global config 설정 파일의 경로에 다음과 같이 추가되면서 긴 경로의 파일도 사용이 가능하다.해당 파일은 다음과 같.. 2025. 1. 7.
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.
반응형