목록 "box" "button" "toggle" "label" "window" "textfield" "textarea" "horizontalslider" "horizontalsliderthumb" "verticalslider" "verticalsliderthumb" "horizontalscrollbar" "horizontalscrol...
유니티 에디터 - 하이라키 윈도우 관련 코드 모음
Memo // 1. 하이라키 윈도우 타입 public static Type HierarchyWindowType { get { if (_hierarchyWindowType == null) _hierarchyWindowType = typeof(EditorWi...
유니티 에디터 GUI - 미끄러지는 On-Off 버튼
Memo bool onOff = true; bool onOffMoving = false; float onOffPos = 0f; string onOffStr = "On"; private void DrawMovingOnOffButton() { const float LEFT = 15f; const float RIGHT ...
유니티 에디터 GUI - 포커스 확인, 처리
1. 컨트롤 포커스 여부 확인 // 다음에 나올 GUI 컨트롤에 이름 부여 GUI.SetNextControlName("Foooooooocus"); // GUI 그리기 EditorGUI.TextArea(rect, value, inputStyle); // 포커스 여부 확인 if(GUI.GetNameOfFocusedControl() =...
Screen Effect Controller(스크린 이펙트, 포스트 프로세싱)
Summary 스크린 이펙트(포스트 프로세싱)를 간단히 적용할 수 있게 해주는 애셋입니다. 게임 오브젝트의 단순 활성화/비활성화 방식으로 스크린 이펙트를 적용/해제합니다. 시간에 따른 마테리얼 프로퍼티의 값 변화 애니메이션을 쉽게 제작할 수 있습니다. 유니티 타임라인에도 손쉽게 연...
유니티 에디터 GUI - 여러 개의 커브를 겹쳐 그리기
Note EditorGUI.CurveField()를 통해 AnimationCurve를 에디터에 그릴 수 있다. 그런데 일반적인 방법으로는 하나의 커브 필드에 하나의 커브만 그려진다. 커브 필드에는 불투명한 배경 색상이 존재하기 때문이다. (0.337f, 0.337f, 0.337f, 1f) 따라서 이를 해결하기 위해서는, 리플렉...
유니티 - 에디터의 특정 영역 마우스 클릭 방지하기
Memo Rect rect = ....; // 마우스 클릭 방지할 영역 if (rect.Contains(Event.current.mousePosition)) { if(Event.current.type == EventType.MouseDown) Event.current.Use(); } // 이후 해당 영역에서의...
유니티 에디터 스크립팅 - 버전 호환 시 고려사항들
EditorGUILayout.Space(float) . 2019.3 미만의 버전에서는 .Space()만 존재하고 .Space(float)가 존재하지 않는다. 따라서 .Space()를 통해서는 높이 8의 고정된 여백만 넣을 수 있다. 이에 대응하기...
유니티 - 에디터 다크모드 여부 스크립트로 확인하기
Memo 확인된 버전 2019.4.9f1 [1] 다크모드 여부 확인 EditorGUIUtility.isProSkin; // true : 다크모드 // false : 일반모드(Light) [2] 모드 변경하기 UnityEditorInternal.InternalEditorUtility.Sw...
(Shorts) C# - Foreach가 실제로 생성하는 소스코드
Memo Source Code private List<int> list = new List<int>(10); foreach (var item in list) { Console.WriteLine(item); } Generated Code private List<int&...