728x90 반응형 전체 글118 유니티 - 런타임에 외부 경로 이미지 로드하여 스프라이트 생성하기 프로젝트에 필요한 스프라이트가 포함되어 있어도 괜찮지만,빌드된 프로그램이 재빌드 없이 내부 리소스가 교체되어야 할 때에는지정된 폴더에서 리소스를 읽어 동적으로 로드해야한다. 예시로 이런 경우도 있다.어떤 게임에서는 유저가 직접 찍은 스크린샷이나 원하는 이미지를 게임 내 UI 나 오브젝트에 텍스쳐로 활용하기도 한다.이럴 때는 빌드에 포함되는 게임 내 리소스가 아니고 배포 이후 유저에 의해 생성되는 파일이다보니 다른 방식으로 로드가 필요하다. 이런 과정에서 동적으로 스프라이트를 생성하는 방법을 적어본다! private Sprite MakeSprite(string filePath, Vector2 pivot) { if (string.IsNullOrEmpty(filePath) == true) return n.. 2023. 11. 1. 유니티 UI 이미지가 보이지 않을 때 Maskable 옵션 확인하기 하이어라키 상에 Image GameObject 는 켜져있고, 씬 뷰에서도 아웃라인이 보이지만 이미지가 보이지 않는다면 Image 컴포넌트 옵션에 Maskable 을 확인한다. (해제하면 보통 보임) Image 컴포넌트 두개가 부모-자식간의 관계로 설정되어 있을 때 Maskable 옵션에 따라 마스킹이 적용된다. 이것 때문에 하위 이미지가 안보이는 경우가 있어서 삽질하다가 적는다. 마찬가지로 하위에 있는 TextMeshProUGUI 컴포넌트도 Extra Settings 에 Maskable 옵션이 있다. 텍스트도 보이지 않는다면 꺼주면 된다. 2023. 11. 1. 유니티 - 씬 이름을 Enum 으로 관리하기 [InitializeOnLoadMethod] 사용 유니티에서 빌드 세팅에 추가된 씬들을 Enum 으로 관리하고 싶다는 Needs 가 생겼다. 유니티에서는 씬에 접근할 때, 씬의 이름 string 이나, 씬의 BuildIndex int 로 접근하는데, 해당 방식이 코드 상에서 명확하지 않다는 점이 존재한다. 그렇다고 씬이 많아지면 일일히 빌드 인덱스에 대치되는 Enum을 손수 작성하기는 귀찮다. 따라서, 씬을 빌드 세팅에 추가하면, 자동으로 Enum Class 를 생성해주는 스크립트를 작성해보았다. 필요한 분이 계시다면 도움이 되었으면 합니다. using System.Collections.Generic; using System.IO; using UnityEditor; public class SceneNameEnumCreator { [InitializeOn.. 2023. 10. 26. 유니티 - Define Symbol 코드로 제어하기 PlayerSettings 클래스에는 Define Symbol 을 제어할 수 있는 함수가 있다. 이것들을 제어하여 원하는 Symbol 만 빌드에 추가하여 빌드 자동화에 도움을 줄 수 있다. PlayerSettings.SetScriptingDefineSymbolsForGroup(currentBuildTarget, defines); currentBuildTarget 은 BuildTargetGroup Type 인데 이것을 가져오는 방법은 아래에 있다. https://wildgoosechase.tistory.com/92 유니티 - 현재 BuildTargetGroup, BuildTarget 을 가져오는 방법 먼저, BuildTarget 을 가져온다. EditorUserBuildSettings.activeBuild.. 2023. 10. 24. 유니티 - 현재 BuildTargetGroup, BuildTarget 을 가져오는 방법 먼저, BuildTarget 을 가져온다. EditorUserBuildSettings.activeBuildTarget 가져온 BuildTarget 을 BuildPipeline.GetBuildTargetGroup() 의 인자로 넣어준다. BuildTargetGroup currentBuildTarget = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget); 이렇게 하면 현재 BuildTargetGroup 을 가져올 수 있다. 이걸 무엇에 쓰냐? 코드로 현재 프로젝트의 Define Symbol 등을 제어할 때, BuildTarget 이나 BuildTargetGroup 이 필요하다. 2023. 10. 24. 유니티 커스텀 에디터 윈도우 생성 방법 public class CustomWindow : EditorWindow { private static string BUILD_PATH = $"BUILD"; [MenuItem("My Menu/Open Window")] public static void OpenCustomWindow() { CustomWindow currentWindow = EditorWindow.GetWindow(); if (currentWindow != null) { currentWindow.minSize = new Vector2(1000, 600); currentWindow.maxSize = new Vector2(1000, 600); currentWindow.Show(); } } } EditorWindow 를 상속받은 클래스를 만들고.. 2023. 10. 24. 이전 1 2 3 4 5 6 7 8 ··· 20 다음 728x90 반응형