유니티를 통일적으로 전환하는 Unity Setting Switcher를 만들어 보도록 하겠습니다.

12120 단어 유닛 확장Unity
  • 이는 제작 중인 Unity Setting Switcher의 사용 방법을 설명하는 기사입니다.
  • 개발 도중에 각종 규격이 변경될 가능성이 많으니 순서대로 갱신한다.
  • Unity Setting Switcher


    JSON에서 설정 정보를 정의하고 이를 바탕으로 Unity 설정의 편집기 확장을 전환합니다.
    GitHub: https://github.com/uisawara/unity-settingswitcher

    예상 효과

  • Unity의 PlayerSettings, BuildSettings 등 주변 설정 작업이 수월해짐
  • 설정 템플릿을 통해 프로젝트 설정을 통일할 수 있다
  • 설정 파일을 배치하고 적용하면 같은 설정을 재현할 수 있다.
  • 문서를 바탕으로 설정함으로써 누락을 방지할 수 있다.
  • 설정 관리 용이성
  • 각 구축 종류의 설정 차이를 공통 부분, 개별 부분으로 정의할 수 있다(예: PC, OculusRift, OculusGo로 설정 전환)
  • 체계를 구축하고 설정을 구축할 수 있으며 유지보수성이 높아지고 설정 작업의 시간이 감소한다
  • 작성된 설정 파일을 가지고 있으면 다른 항목에서 같은 설정을 재현하기 쉬워진다
  • 설정한 곳에 이렇게 쓰여있다~이런 해설을 쓰고, 설정파일은 여기다 두면 되고, 재연하는 쪽도 설정파일만 가지고 있다
  • 여러분의 시간이 줄어들었습니다happy
  • 예) 이런 JSON 파일을 쓰면

    이런 설정으로 바꿀 수 있어요.
    실험tweetpic.twitter.com/xmCieGJbBy-sa_w_ara△ (@sa_w_ara) December 13, 2019

    1단계를 설정합니다.기본


    android의develop,production 설정은 전환할 수 있습니다.

    flavors/app,viewer와buildtype/develop,production을 설정할 때의 절차 정의


    • 필요하기 때문에MiniJSON, 미리import
    • UnitySettingSwitcher의 unitypackage를 Unity 프로젝트로 가져오기https://github.com/uisawara/unity-settingswitcher/releases
    • 메뉴 Windows/UnitySettingSwitcher에서 SettingSwitcher 창 열기(CMD+E에서도 열기)
    • /Assets/UnitySettingSwitcher/Mentlates 설정.json과 Setting.android.json을/Asets/부하로 복사
    • /Assets/settings.설정을 정의하기 위해 json 편집


    /Assets/settings.json

    {
      "settings": [
        {
          "name": "flavors/app",
          "build_settings": {
            "scene_list": [
              "Assets/Application/Scenes/MainScene.unity"
            ]
          }
        },
        {
          "name": "flavors/viewer",
          "build_settings": {
            "scene_list": [
              "Assets/Core/ARSceneLayout/Scenes/SceneViewerScene.unity"
            ]
          }
        },
        {
          "name": "buildtype/develop",
          "player_settings": {
            "applicationIdentifier": "com.example.sampleappdev",
            "scripting_define_symbols": "ENV_DEVELOP"
          }
        },
        {
          "name": "buildtype/production",
          "player_settings": {
            "applicationIdentifier": "com.example.sampleapp",
            "scripting_define_symbols": "ENV_PRODUCTION"
          }
        }
      ]
    }
    


    전환 사용 방법 설정


    • SettingSwitcher 창 열기(메뉴 창 선택/Unity Setting Switcher 또는 CMD+E)
      • Unity Setting Switcher 창 열기

    • "reload"단추를 통해 설정 읽기
    • 설정 선택, 버튼 클릭 전환 설정

    2단계를 설정합니다.android에 keystore 전환 정의


    이런 설정을 통해 개발용 키스토어와 발표용 키스토어를 구분할 수 있다p>
    • keystore 파일 구성
      • Assets/Cert.local/sample.keystore

    • 로컬 전용 설정 정의
      • keystore 파일 구성
      • keystore 설정 정의



    /Assets/Settings.local.json

    {
      "settings": [
        {
          "name": "android-singing/develop",
          "android": {
            "keystoreName":"",
            "keystorePass":"",
            "keyaliasName":"",
            "keyaliasPass":""
          }
        },
        {
          "name": "android-singing/production",
          "android": {
            "keystoreName":"Assets/Cert.local/sample.keystore",
            "keystorePass":"************",
            "keyaliasName":"************",
            "keyaliasPass":"************"
          }
        }
      ]
    }
    


    Git를 위한 설정 추천


    사전에gitignore에 다음 설정을 추가하는 것이 좋습니다.

    로컬 프로필이commit 범위에 있지 않고 개인 설정이 저장소를 오염시키는 것을 피할 수 있습니다.

    (선택 중인 Setting 정보, 로컬에만 유효한 설정 등)

    .gitignore

    # UnitySettingSwitcher
    *.local
    *.local.json
    *.local.meta
    *.local.json.meta
    


    사양 설정


    설정은 이렇습니다.p>
    • 설정 파일
      • /Assets/Settings.json 및/Asets/Setting.*.json의 모든 설정 파일은 설정 정보의 정의 파일로 읽습니다.
      • 개별 설정 파일에서 정의된 설정은 서로 참조할 수 있기 때문에 고정 설정군과 응용 프로그램 고유 설정군을 각각 정의하여 차분 프로그래밍을 할 수 있다.

    • 그룹 설정
      • name에 "/"를 추가하여 경로를 구분하고 설정을 그룹화할 수 있습니다.
      • 그룹에서는 하나의 설정만 사용할 수 있으며 둘 중 하나를 선택하면 다른 설정을 사용할 수 없습니다.

    • 설정 숨기기
      • name의 첫 번째 문자는 "입니다."이렇게 하면 설정 창에 표시되지 않는 설정이 됩니다.

    • 상속
      • 'inherit'선언을 사용하면 다른 설정을 계승한 하위 설정을 만들 수 있다.

    • 연결 설정
      • 설정을 선택하면 선택한 활동 설정 세트가 합쳐져 Unity의 다양한 설정 클래스(PlayerSettings, BuildSettings 등)에 반영됩니다.
      • 참고로 Unity Editor 콘솔에 실제 적용되는 설정 집합 이름, 설정 항목을 기록합니다.뭐가 웃겨요?이렇게 생각할 때 저쪽을 참조할 수 있다.

    • 프로젝트의 다양한 이름 설정
      • Unity의 각종 설정 클래스인 public static 구성원 이름을 JSON의 프로젝트 이름으로 직접 사용합니다.
      • 따라서 단위 참조 등 UnityEditor의 GUI에서 어떤 항목이 어떤 구성원 이름에 적용되는지 조사하십시오.
      • enum형의 설정 항목은 Enum입니다.Parse가 문자열 해석을 수행하므로 설정 파일의 값은 Enum 요소를 사용해야 합니다.
        • 예)'ScriptingBackend','IL2CPP','minSdkVersion','AndroidApiLevel22'

      • enum 형식에 "Flags"속성이 있는 형식에 대해 여러 개의 값 집합을 정의할 수 있습니다.공백 구분자의 Enum 요소 문자열을 사용하십시오.
        • 예)targetArchitectures: ARMv7ARM64



    대략적인 구조


    • 기본적으로 Reflection을 사용하여 Unity의 PlayerSettingClass public static field를 Unity의 PlayerSettingClass, BuildSettingClass 등 class public static field로 설정합니다.
    • 값 설정을 통해 반영할 수 있는 필드는 좋지만 Setter 방법으로 설정해야 하는 필드 등은 개별적인 대응 코드가 적혀 있다.그리고 현재 모든 설정 항목이 대응할 수 없습니다.
      • 나는 대응하지 않는 항목은 개별적으로 추서해야 한다고 생각한다.


    마지막


    • 유니티에서 설정 전환을 하기 위해 튜토리얼 보도를 보면서 하나하나 설정하는 시간과 편집기를 확장하여 쓰는 시간에서 해방되고 싶다.
    • 설정 파일을 가져오면 버튼 설정을 쉽게 할 수 있습니다

    좋은 웹페이지 즐겨찾기