unity 53

유니티 TreeView를 활용한 Custom tool 만들기

유니티 툴을 만들다가 하이어라키 창에있는 저 구조는 어떻게 표현한 걸까 라는 생각을 가져 자료를 확인하던중 TreeView구조를 알게 되었다. 이를 활용하여 필요한 부분을 커스터 마이징 한 뒤 폴더의 구조를 가져오는 것에 성공하였다 이젠 폴더를 선택하여 원하는 스크립트를 여러 폴더에 동시에 넣을수 있게 되었다. 전반적으로 아래의 유니티 메뉴얼을 따라 공부하였고 예제코드를 주로 활용하여 구현에 성공하였다  Unity - Manual: TreeViewTreeView Note: It’s strongly recommended to use the UI Toolkit to extend the Unity Editor, as it provides a more modern, flexible, and scalable so..

유니티 폴더 및 스크립트 초기 생성 ver.2- 유니티 툴제작

유니티 폴더 + 파일까지 자동생성하기Unity - 폴더 자동생성 패키지 제작하기유니티에서 매번 프로젝트를 만들때 폴더를 일일이 생성해 주는것이 너무 귀찮아서 자주 사용하는 폴더를 자동으로 생성해주는 간단한 폴더가 있으면 좋rimugiri.tistory.com 이렇게 생성하다보니 이제는 프로젝트의 이름과 스크립트들의 이름을 직접 설정하고 이를 생성하고 싶어졌다전에 SoundTool을 제작했던 경험을 바탕으로 프로젝트이름 스크립트 이름을 직접 설정할 수 있게 만들어 주었다 생성할 스크립트들의 이름은 아래에 목록으로 뜨며 Manager단위의 스크립트  또한 체크를 통해 Manager폴더에 따로 들어갈 수 있도록 하였다 기존에 일반적으로 생성하던 DefualtProject또한 그대로 두어 입력없이 생성도 가능하..

유니티 폴더 + 파일까지 자동생성하기

Unity - 폴더 자동생성 패키지 제작하기유니티에서 매번 프로젝트를 만들때 폴더를 일일이 생성해 주는것이 너무 귀찮아서 자주 사용하는 폴더를 자동으로 생성해주는 간단한 폴더가 있으면 좋겠다고 생각하여 만들어 보았다. 1. namesrimugiri.tistory.com 위 글에서 폴더까지 자동으로 생성하는 것을 다루었지만 기본적으로 프로젝트를 만들때 Manager단위의 파일들도 대부분 생성한다는 것을 깨닳아 파일도 처음부터 생성하게 만들고 싶어 코드를 수정하였다 using System.IO;using UnityEditor;using static System.IO.Directory;using static System.IO.Path;using static UnityEditor.AssetDatabase;usi..

Unity - prefab을 이용한 간단한 ObjectPool

using System.Collections;using System.Collections.Generic;using UnityEngine;/// /// prefab의 고유 HashCode를 key로 사용하여 prefab관리/// Get("Your Prefab") 함수를 통해 사용 가능한 오브젝트를 반환/// public class ObjectPoolTest : MonoBehaviour{ [SerializeField] GameObject _prefab; private Dictionary> _pool = new Dictionary>(); private void Update() { if (Input.GetKeyDown(KeyCode.Space)) { ..

Unity 카메라 기능들 정리

1. MouseLookAt | 마우스를 이용한 부드러운 바라보기2. Shake | 스페이스바를 이용하여 카메라 떨림 구현3. 계속 추가예정using System.Collections;using UnityEngine;public class CameraTest : MonoBehaviour{ [SerializeField] Transform target; [SerializeField] float mouseXSpeed = 10f; [SerializeField] float mouseYSpeed = 10f; //카메라 pivot값 [SerializeField] Vector3 cameraPivot = new Vector3(0.2f, 1.5f, -2f); // 마우스 회전값 floa..

Unity - UI 자동화

유니티에서 UI를 작업하는 경우 하이어라키 창에서 object를 일일이 연결해야된다는 번거러운점이 있다 이를 해결하기위해 자동 연결 기능을 구현해 보자 1. Bind - C#은 reflection이라는 좋은 기능이 있으므로 이를 활용하여 구성각 요소들을 얻어와 보자 public class GameUI : MonoBehaviour { public void Bind(Type type) where T : UnityEngine.Object { // enum 에 있는 요소들의 이름을 가져온다 string[] names = Enum.GetNames(type); UnityEngine.Object[] objects = new UnityEngine.Object[names.Length]; // 이름을 통해 하위 객체에 동..