//using System; //using System.Linq; /// <summary> 델리게이트가 메소드를 갖고 있는지 검사 </summary> private static bool CheckDelegateHasMethod<DType>(DType @delegate, DType method) where...
유니티 - Menu Item(메뉴 아이템)
메뉴 아이템 기본 private const string MenuItemTitle = "Window/Rito/Menu Item"; private const int MenuItemPriority = 123; [MenuItem(MenuItemTitle)] private static void MenuItem1() { // .. } ...
유니티 - Scripting Define Symbol 스크립트로 제어하기
Scripting Define Symbol? 스크립트에서 #define으로 정의하듯, 프로젝트 전체에서 정의하여 사용할 수 있는 심볼 Project Settings - Player - Other Settings - Scripting Define Symbols 빌드 타겟마다 달라진다. ...
C# - 스크립트(.cs), 어셈블리(.dll, .exe) 경로 참조
스크립트 경로 public static void GetScriptPath([System.Runtime.CompilerServices.CallerFilePath] string filePath = "") { // 1. Script(.cs) Path _ = filePath; // 2. Folder Path st...
유니티 - 컴포넌트의 인스펙터 내 순서를 맨 위로 올리기
bool flag = true; while (flag) { flag = UnityEditorInternal.ComponentUtility.MoveComponentUp(this); // 맨 위로 올라갔을 경우 false 리턴 }
유니티 - 플레이모드 상태 변경에 따른 동작 구현하기
#if UNITY_EDITOR using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; namespace Rito { [InitializeOnLoad] public class P...
Transform Custom Editor(트랜스폼 커스텀 에디터)
Summary 트랜스폼의 커스텀 에디터 트랜스폼의 로컬 정보 뿐만 아니라, 글로벌 위치, 회전, 크기 값을 확인 및 조작할 수 있습니다. 총 8개의 리셋 버튼으로 트랜스폼의 로컬, 글로벌 값들을 초기화할 수 있습니다. Preview Global - Reset 버튼을 누를...
Weighted Random Picker (가중치 랜덤 뽑기)
Note 게임에서 각각 n% 확률로 존재하는 요소들의 뽑기를 수행할 때, 단순히 Random.Range()를 통해서는 계산할 수 없다. 이 때, ‘가중치 랜덤 뽑기’를 이용한다. 제네릭을 활용하여, 아이템들과 가중치의 목록을 넣으면 간단히 뽑기를 수행할 수 있도록 작성하였다. 아이...
C# - Regex (정규표현식)
Memo Using using System.Text.RegularExpressions; 특수문자 ^, \A : 문자열의 시작 $, \z : 문자열의 끝 \d : 10진수 숫자 \D : 숫자가 아닌 문자 \b : 단어 경계 ...
유니티 - 컴파일, 게임 시작 시 실행되는 애트리뷰트 정리
공통 특징 클래스 또는 메소드 상단에 애트리뷰트를 명시한다. 컴포넌트로 넣지 않고, 스크립트로만 존재해도 실행된다. 정적 클래스나 상속에 관계 없이 동작한다. 메소드 애트리뷰트는 정적 메소드에만 동작한다. 컴파일, 플레이모드 진입 시 실행 Note Editor...