본문 바로가기
반응형

개발874

Unity코드) RectTransform 을 World 좌표로 계산 코드 RectTransform 을 World 좌표로 계산 코드 특정 RectTransform 의 위치에 대한 Position 값이 필요한 상황에서 유용하게 사용할수 있는 코드이다. private Vector3 GetWorldPosition(RectTransform rectTransform) { Vector3[] corners = new Vector3[4]; rectTransform.GetWorldCorners(corners);// RectTransform의 꼭지점 좌표를 World 좌표로 가져옴 Vector3 center = Vector3.zero; foreach (Vector3 corner in corners) center += corner; center /= 4f; // 네 꼭지점의 평균을 구해 RectT.. 2024. 2. 15.
잡학지식) 페어와이즈 테스트(Pairwise Testing) 페어와이즈 테스트(Pairwise Testing)페어와이즈 테스팅은 소프트웨어 테스트 기술 중 하나로, 시스템의 기능을 충분히 검증하면서도 실행해야 하는 테스트 케이스의 수를 체계적으로 줄이기 위한 기법이라고 한다. 페어와이즈 테스팅은 입력 매개변수의 모든 쌍을 테스트함으로써 많은 결함을 발견할 수 있는데, 이를 모든 조합을 테스트하지 않아도 확인이 가능한 케이스를 만들어 낸다.  소프트웨어 시스템에서는 여러 입력 매개변수가 있을 수 있으며,모든 가능한 조합을 테스트하는 것은 현실적이지 않거나 시간이 많이 소요될 수 있다.  페어와이즈 테스팅은 입력 매개변수의 모든 쌍을 테스트하는 대표적인 하위 집합을 선택하여  대처한다.  설명입력 매개 변수 식별소프트웨어 동작에 영향을 미칠 수 잇는 다양한 입력 매개.. 2024. 2. 5.
Unity) TextMeshPro 특정단어 Click 이벤트 ( HyperText / Text Click) TextMeshPro 특정단어 Click 이벤트 ( HyperText / Text Click) Text의 특정 단어를 클릭하면 처리하는 하이퍼텍스트(클릭시 링크) 하는 기능이 필요해서 사용방법을 간단하게 포스팅한다. Text에 다음과 같은 형태로 작업하면 된다. Click Action 여기서 "ID" 라고하는건 고유하게 식별이 가능하기 위한 텍스트로 가독성있는 단어로 하면 된다. 해당 스크립트를 추가하고 이벤트에 대한 설정을 하면 된다. using System; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.EventSystems; /// /// Te.. 2024. 2. 5.
문제해결)Unity)GUI Error: Invalid GUILayout state in view. Verify that all layout Begin/End calls matchUnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) GUI Error: Invalid GUILayout state in view. Verify that all layout Begin/End calls matchUnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) GUI 작업을 하다가 다음과 같은 에러가 발생해서 간략하게 포스팅한다. 에러 코드가 직관적이여서 확인해보면 Begin 과 End 는 쌍으로 작업이 되어야한다고 한다. 확인해보니 코드가 누락되어서 그렇다. EditorGUILayout.BeginHorizontal(); ... EditorGUILayout.EndHorizontal(); 좀더 직관적으로 처리하기 위해서 구분을 하는것도 가독성이 좀더 좋아진다. float columnWidth = .. 2024. 2. 2.
개발용어) 메시지 큐 (Message Queue : MQ) 메시지 큐 (Message Queue : MQ) 게임 개발에서 Message Queue는 다양한 시스템 간 통신 및 이벤트 처리를 하는 과정에서 필요한 중요한 개념중 하나로 비동기적 작업을 처리하거나 안전하게 이벤트에 대한 정보를 전달하는데 도움을 준다. 해당 특징은 다음과 같다. 설명 비동기 통신 게임은 여러 시스템 및 모듈로 구성되다보니 종종 병렬로 실행되며 서로에게 의존성이 생길때 Message Queue를 사용하면 이러한 시스템 간 통신이 비동기적으로 구현이 간으하다. ex : 게임 서버와 클라이언트 간의 통신이나 서로 다른 게임 엔진 시스템 간의 데이터 전송은 Message Queue를 통해 처리 이벤트 처리 게임은 플레이어의 입력, 적들의 행동, 충돌, 게임 내 상태 변경 등 다양한 이벤트는 .. 2024. 1. 31.
알고리즘) Given When Then Pattern ( 테스트 케이스 작성 기법 ) Given When Then Pattern ( 테스트 케이스 작성 기법 ) 주로 테스트 케이스를 작성하거나 스펙을 정의할때 사용하는 패턴으로 이 패턴은 테스트 케이스의 구조를 명확하게 만들고 테스트의 목적을 명시적으로 표현하는데 도움이 된다. 주로 BDD(Behavior-Driven Developement), TDD(Test Driven Development)에서 사용한다. 테스트를 시작하기 전에 시스템이 특정 상태어야 하는 전제 조건이다. 이미 주어진 환경, 혹은 필요한 환경도 포함된다. 어떤 조건이나 특정한 상황을 설정하는 부분으로 특정한 행동이나 이벤트를 트리거하너 전제 조건을 설정한다. When에서 설정한 조건에 대한 기대 결과 혹은 예.. 2024. 1. 31.
읽을거리)소프트웨어 개발자의 생산성을 측정하는 방법 소프트웨어 개발자의 생산성을 측정하는 방법 소프트웨어 개발자의 생산성을 측정하는 방법이라는 글을 일고 간단하게 정리 및 추가로 개인적인 생각과 견해를 포함해서 포스팅한다. 원본 링크 : [링크] 기고 | 소프트웨어 개발자의 생산성을 측정하는 방법 소프트웨어 개발자의 효율성을 측정하는 것은 수십 년 동안 불가능한 것으로 여겨졌다. 두 명의 맥킨지 컨설턴트는 개발자가 개발자의 생산성을 측정할 www.itworld.co.kr 생산성을 측정하기 위한 방법으로 DORA(DevOps Research and Assessment)나 , SPACE(Satisfaction Performance,Activity., Communication/ Collaboration and Efficiency)를 활용해서 한다. 이런 맥킨지.. 2024. 1. 30.
개발용어) 버스 지수(Bus Factor), 트럭 지수(Truck Factor), 로또지수 (Lotter Factor) 버스 지수(Bus Factor), 트럭 지수(Truck Factor), 로또지수 (Lotter Factor) 버스 지수, 트럭 지수 등으로 불리우는 이 표현은 '프로젝트를 진행하는 과정에서 팀원이 갑작스럽게(버스, 트럭 사고등) 이탈하는 경우에 프로젝트에 미치는 영향 혹은 심각도`를 말하는 리스크 지표 를 말한다. 버스 지수, 트럭지수 의 수치가 낮을수록 그 사람에게 의존하는 의존도가 낮다고 볼수있다. 한 사람에게 의존하는 의존성이 높으면 그사람이 키맨의 역할을 한다고 볼수 있는데 그만큼 리스크는 높아진다. 그사람이 부재가 되는 경우에도 진행이 어렵다는 이야기 이다. 비슷한 표현으로 로또 지수 (극단적으로 로또를 맞아 회사를 사직하는 형태)도 있다. ★☆☆☆☆ 2024. 1. 30.
Unity) 옵션 설정-자동 품질(퀄리티 : Auto Qulity Setting) 옵션 설정-자동 품질(퀄리티 : Auto Qulity Setting) 자동 품질을 설정하기 위해서 방법을 강구하다가 발견한 코드이다. 해당 코드를 최신화 해서 간략하게 정리한다. 퀄리티에 대한 설정은 좀더 다양하게 가능하다. 해당 코드는 참고용 코드로 생각하면 된다. FPS, 메모리 사이즈/ 프로세스 카운트를 통해서 간략하게 퀄리티에 대한 설정을 하는 코드이다. 3D 게임에서는 퀄리티 옵션에 대해서 추가로 더욱 다양하게 설정이 가능하다. LOD, 오클루전 컬링, 카메라 설정변경 등등이 가능하다. eQualityLevel AutoChooseQualityLevel() { Assert.IsTrue(QualitySettings.names.Length == Enum.GetNames(typeof(eQu.. 2024. 1. 22.
읽을거리) Unity 에서 AI를 만드는 방법 1부, 2부 Unity 에서 AI를 만드는 방법 1부, 2부 Game Dev tv 사이트를 보다가 간단하게 설명이 잘되어 있는 글을 발견하게 되어서 간략하게 포스팅 한다. Unity 에서 AI를 지각 있게 만드는 방법 1부 - 원본 링크 : [링크] How to make AI sentient in Unity, Part I In the first of two parts miniseries about AI senses, I'm going to guide you through an implementation of eyes and ears for NPCs, that takes advantage of inheritance and UnityEvents. In the subsequent part, I'll show you how.. 2024. 1. 19.
VisulStudio) .Net FrameWork Change (프레임워크 변경) .Net FrameWork Change (프레임워크 변경) Visual Studio 2022 버전으로 작업르 하다가 프레임워크 버전이 맞지 않는 경우가 발생했다. 재귀 패턴으로 작업을 했는데 C# 7.3에서는 사용할수 없다고 했다. 컴파일러 버전에 따른 .NET을 확인해야 한다. .NET 8.x C# 12 .NET 7.x C# 11 .NET 6.x C# 10 .NET 5.x C# 9.0 .NET Core 3.x C# 8.0 .NET Core 2.x C# 7.3 .NET Standard 2.1 C# 8.0 .NET Standard 2.0 C# 7.3 .NET Standard 1.x C# 7.3 .NET Framework 모두 C# 7.3 [프로젝트]-[속성]-[.. 2024. 1. 18.
Unity) ScriptableObject Insecptor 조건부 노출 (Custom Editor) ScriptableObject Insecptor 조건부 노출 (Custom Editor) Scriptable Object를 사용하다보면 조건에 따라서 너무 많은 불필요한 조건이 노출되는 경우가 있다. 단순하게 룰이라고 기억하고 사용하기에는 휴먼이슈도 생기고 생각보다 직관적이지 않다. 불필요한 데이터를 넣을수도있고 정보가 많다보니 헷갈릴수도 있다. 조건부로 노출하는 방법으로 수정해보자. using UnityEditor; [CustomEditor(typeof(CardScriptableObject))] public class CardScriptableObjectInspector : Editor { private Serialized.. 2024. 1. 17.
개발지식) 금칙어/욕설/비속어 필터(Profanity filter,Expletive filter) 금칙어/욕설/비속어 필터(Profanity filter,Expletive filter) 금칙어 필터는 애플리케이션, 웹사이트, 또는 다른 소프트웨어에서 사용자가 입력하는 텍스트 중에 특정 단어나 구절을 차단하거나 필터링하는 기술이다. 이는 불쾌하거나 부적절한 내용을 방지하거나 관리하기 위해서 사용된다. 해당 특정 단어를 가지고 있는 데이터 리스트에 해당하는 항목이 있으면 치환하는 형태이다. 대체적으로 xxx 나 *** 형태로 표시 되거나 다른 언어로 대체된다. 방법 설명 단어 기반 필터링 특정 단어나 구절을 사전에 정의된 목록에서 차단합니다. 이 목록은 미리 정의된 금칙어나 부적절한 표현을 포함합니다. 정규 표현식 정규 표현식을 사용하여 특정 패턴이나 규칙을 갖는 텍스트를 차단합.. 2024. 1. 16.
Unity) Layout Group(Auto Layout) 을 사용할때 비활성화로 값 변경이 안될때 변경하는 방법들 Layout Group(Auto Layout) 을 사용할때 비활성화로 값 변경이 안될때 변경하는 방법들 다음과 같이 Layout Group 을 사용하는 과정에서 비활성화되어서 값을 변경하지 못하는 경우가 있다. 해당 케이스는 대체적으로 상위 객체의 영향을 받는 경우이다. 이런 경우에는 상위 Component를 비활성화 하고 수정하고 다시 활성화하는 방법으로 해결이 가능하다. Layout Element Component를 추가해서 해당 값을 변경하고 재정의한다. Unity 자동 레이아웃 (Auto Layout) : [링크] 자동 레이아웃 - Unity 매뉴얼 자동 레이아웃(Auto Layout) 시스템은 수평 그룹, 수직 그.. 2024. 1. 12.
AppleStore)Apple Store Update Version Check (iOS 앱 업데이트 체크하기) App Store Update Version Check (iOS 앱 업데이트 체크하기) iOS App Store에 업로드 이후에 낮은 버전에서 업데이트에 대한 체크를 하기 위한 방법이다. 스토어에 올라간 버전을 체크하면 된다. https://itunes.apple.com/lookup?bundleId={패키지명} 해당 정보를 넣으면 JSON으로 된 Apple Store에 업로드된 패키지명에 해당하는 스토어에 정보를 준다. < 예시 Apple 에 내장된 날씨 어플의 패키지명을 넣어보면 다음과 같다. https://itunes.apple.com/lookup?bundleId=com.apple.weather 다운받아지는 JSON 파일의 정보를 보면 다음과 같다. 하단에서 보면 Version 정보가 있는것을 확인 .. 2024. 1. 5.
반응형