[Unity] 스크립트를 통해서만 UGUI의 Asseet 구축

12571 단어 Unity

개시하다


이제 유니티 게임의 MOD를 개발하기 위해서는 프리셋 허브에 의존하지 않는 UGUI 생성이 필요해 개발했다.
다음 기사에서도 언급되었다
  • 유사한 화면/부품을 대량 생성할 경우
  • 규격 변경이 자주 발생할 것으로 예상되는 항목
  • 여러 사람이 동시에 GUI를 만지는 경우
  • 이 가능하다, ~할 수 있다,...
    또 다음 글이 NGI로 구축됐을 때도 참고 가치가 있다.
    스크립트로만 NGI를 구축하려고 찾아봤는데

    ugui-script-creator


    가져오기 방법


    ugui-script-creator(GiitHub)에서 다운로드하여 가져오십시오.

    사용법


    기본 사용 예
    using UnityEngine;
    using UnityEngine.UI;
    using UnityEngine.UI.Utility;
    
    
    public class Example : MonoBehaviour
    {
        #region event
        private void Start()
        {
            // EventSystemが存在しない場合一緒に生成します
            Canvas canvas = UICreator.CreateCanvas();
    
    
            // キャンバスの子としてテキストを生成する
            Text text = UICreator.CreateText(canvas.gameObject);
            text.rectTransform.localPosition = Vector3.left * 140f;
            text.text = "Hello World!!";
            text.alignment = TextAnchor.MiddleCenter;
            text.color = Color.green;
    
            // オブジェクト名やコンポーネントの初期値を設定する
            Dropdown dropdown = UICreator.CreateDropdown(canvas.gameObject, "Gender", "性別");
            dropdown.GetComponent<RectTransform>().localPosition = Vector3.right * 140f;
            dropdown.options.Clear();
            dropdown.options.Add(new Dropdown.OptionData { text = "男性" });
            dropdown.options.Add(new Dropdown.OptionData { text = "女性" });
        }
        #endregion
    }
    

    조합 UniRx 사용 예
    using UnityEngine;
    using UnityEngine.UI;
    using UnityEngine.UI.Utility;
    using UniRx;
    
    
    public class Example : MonoBehaviour
    {
        #region event
        private void Start()
        {
            Canvas canvas = UICreator.CreateCanvas();
    
    
            Button button = UICreator.CreateButton(canvas.gameObject, "Random", "ランダム");
            button.GetComponent<RectTransform>().localPosition = Vector3.left * 140f;
            button.OnClickAsObservable()
                .Subscribe(_ => Camera.main.backgroundColor = new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f)));
    
            Image image = UICreator.CreateImage(canvas.gameObject, "Background");
            image.rectTransform.localPosition = Vector3.right * 140f;
            image.color = new Color(250f / 255f, 120f / 255f, 255f / 255f);
            Toggle toggle = UICreator.CreateToggle(image.gameObject, "Interactable", "Interactable");
            toggle.GetComponent<RectTransform>().localPosition = Vector3.right * 30f;
    
            toggle.OnValueChangedAsObservable()
                .Subscribe(interactable => button.interactable = interactable);
        }
        #endregion
    }
    

    메소드 목록


    메서드 이름
    기능
    시험을 준비하다
    CreateCanvas
    Canvas 생성
    장면에 EventSystem이 없는 경우 생성
    CreateEventSystem
    EventSystem 생성
    CreatePanel
    Panel 생성
    CreateButton
    Buton 생성
    CreateText
    Text 생성
    CreateImage
    Image 생성
    CreateRawImage
    RawImage 생성
    CreateSlider
    슬라이더 생성
    CreateToggle
    Toggle 생성
    CreateInputField
    InputField 생성
    CreateDropdown
    Dropdown 생성
    CreateScrollView
    ScrollView 생성

    허가증을 발급하다


    MIT

    라이센스 사용


    Ugui-sscript-creator는 Unity Technologies/UI를 기반으로 제작되었습니다.
    Copyright (c) 2014-2015, Unity Technologies

    끝말


    문장 첫머리에는 미리 조립된 UGUI 생성에 의존하지 않음
    UGUI 기본 스플라인을 사용하여 구문을 실행할 때 참조를 위해 프리셋에 종속됩니다.
    UGUI의 기본 스프라이트는 Unity > Editor > Data > Resources > unity_builtin_extra에 포함되며, 참조 없이 구축할 때 스프라이트가 포함되지 않아 프리셋이 준비되었습니다.
    Resources.GetBuiltin Resource 및 AsseetDatabaseCopyAsset、Texture2D.EncordeTopNG 등을 이용한 시도는 잘못됐지만 제대로 진행되지 못했다.
    해결책을 아는 사람이 있으면 알려주세요.
    ※ 개별 사이다를 사용하거나 편집기를 실행할 때만 사용하기Resources/ugui-script-creator 폴더를 삭제해도 문제 없음

    좋은 웹페이지 즐겨찾기