[Unity,Editor] SOManagementWindow 제작 일기 Part.4
·
Editor
만든 거 이게 계속 보다보니까 짜치는 점을 발견했다.이게 생성하는 Window인데 너무 단출하고 생성 위치도 직접 못 정해준다. 그래서짜잔, 파일을 선택에서 원하는 위치에 생성할 수 있게 만들었다. 그리고 파일을 선택한다면 그 파일의 이름, 크기, 가지고 있는 파일이 오른쪽에 화면에 뜨게 된다. 구현부Uxml먼저 Uxml과 USS를 만들어야 한다.이건 Uxml이다. 이런 식으로 꾸며주고 SplitView의 Dragline을 없애기 위해서 두개의 USSClass Extract를 해준뒤 Display 탭에 Display를 꺼준다. DragLine이 보이지 않게 된다. 그리고 원래 이렇게 밋밋하게 생긴 Foldout을이렇게 바꿔주었다. 이렇게 바꾸기 위해서.unity-foldout__checkmark, Fol..
[Unity, Editor] SOManagementWindow 제작 일기 Part.3
·
Editor
저번에 만들었던 기능에서 SO에 직접 넣어서 Type을 찾는 것이 불편해서 Assembly를 활용하여 Load하는 방식을 채택하였다.Assembly는 내부적으로 Dictionary로 구현되어 있어 Load가 굉장히 빠른 편이다. 때문에 Assembly를 선택하였다.그리고 이렇게 하면 ScriptableObject를 상속받는 Script가 생길 때마다. 자동으로 업로드를 해준다. 변경된 코드는 거의 없고 추가된 Script가 있다. AssemblyLoadSystem전체 코드using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Reflection;using UnityEditor;u..
[Unity, Editor] SOManagementWindow 제작 일기 Part.2
·
Editor
지난번에 발생했던 문제들을 해결하는 방법입니다.저는 이 문제를 해결하기 위해서 VisualElement로 Tab을 구현하고 ScrollView 안쪽에 넣어서 관리 했습니다. 때문에 다음과 같은 함수들이 새로 추가 되었습니다. TabVisualMake/// /// Tab의 Visual를 만드어주는 함수/// /// /// private VisualElement TabVisualMake(string name){ VisualElement tabVisual = new VisualElement(); tabVisual.AddToClassList(_tabClassName); tabVisual.name = name; tabVisual.tooltip = GUID.Generate().ToString..
[Unity, Editor] SOManagementWindow 제작 일기 Part.1
·
Editor
SO를 가져와서 정리해주는 EditorWindow를 만들어 봤습니다. 기능 소개그림을 보기 전에 글로 간단하게 소개하자면 TypeTable에 중복 되는 SO가 아닌 것을 하나씩 넣어주고 Path를 지정해준 뒤 Window를 열면 하나씩 넣어준 SO들이 전부 가져와서 정리되어 있는 것을 볼 수 있다. 그리고 그 가져온 SO들을 지워주거나 이름을 바꾸거나 값들을 수정할 수 있고 지정해준 Path로 생성을 할 수 도 있다.구현부구현 같은 경우에는 중요한 함수들을 하나씩 설명해드리겠습니다. SOTypeTable먼저 Scriptable Object 들의 Type들을 담아 주는 Table SO를 구현하였습니다.왜냐하면 Type들을 컨테이너로 담아 관리 하는 것이 편하다고 판단했기 때문입니다.using System;..
[졸업 작품, Unity]Item EditorWindow로 관리하기
·
Editor
오늘은 전에 만들었던 Item들을 관리하고 생성해주는 EditorWindow를 만들어봤다. EditorWindow는 UIToolkit과 같이 사용할 수 있어서 같이 사용하였다. 어케함?먼저 cs와 uss uxml이다.using System;using System.Collections.Generic;using System.Linq;using LJS.Item;using UnityEditor;using UnityEditor.UIElements;using UnityEngine;using UnityEngine.Rendering.UI;using UnityEngine.UIElements;public class ItemCreater : EditorWindow{ [SerializeField] private V..
[Editor] 적 생성 Editor Window 코드 부분 제작
·
Editor
깃헙 링크 : https://github.com/ljs1206/TestProject GitHub - ljs1206/TestProject: this Repository organized what I studiedthis Repository organized what I studied. Contribute to ljs1206/TestProject development by creating an account on GitHub.github.com 이 글 부터는 에디터를 만들때 썼던 코드들에 대해서 다루어 볼 것이다. 아직 미완성이여서 좀 부족한 부분이 있는점 양해 부탁한다. Window Open가장 먼저 기본적인 세팅을 해볼거다.[MenuItem("Editor/Prefab/MakePrefabWindow")] ..
[Editor] 적 생성 Editor Window 제작 과정 part.2
·
Editor
저번에 했던 내용을 이어서 하기전에 전 파트에 자료들과 참고한 부분들을 다 올려두었으니 참고하면 좋을 것 같다. PrefabCreater 가장 먼저 ViusalElemet 하나를 만들어서 이름을 MakePrefab으로 정한다. (사실 아무 이름이나 상관없긴함 분류만 된다면) flex의 shrink과 Grow는 1로 하고 Dir을 column으로 한다. 전에도 설명했듯 아래 방향으로 정렬 시키기 위해서이다.그리고 위쪽 텍스트는 Toolbar 추가해서 label 넣어준거라서 딱히 설명은 안하겠다.그다음 아래쪽 남는 공간인데 이쪽은 나중에 코드로 EnumField에 따라서 보이는 게 다르게 할 예정이다.일단 비주얼 부터 만들자면 VisualElement 만들어서 자식을 해주고 그 아래에 EnumField 넣어..
[Editor] 적 생성 Editor Window 제작 과정 part.1
·
Editor
깃헙 링크 : https://github.com/ljs1206/TestProject GitHub - ljs1206/TestProject: this Repository organized what I studiedthis Repository organized what I studied. Contribute to ljs1206/TestProject development by creating an account on GitHub.github.com문득 개발 하다 보니까 적을 만들때 계속 수동으로 만드는게 불편하기도 해서 그 과정을 모듈화 해서 Eidtor로 만들면 편할 거 같다는 생각이 들어서 모듈화를 하는 과정을 담은 블로그를 쓰게 되었다. 어느정도 만든 게 어떤 식으로 만들었지 설명을 하면서 다음 글 부턴 ..