Version: 2019.4
언어: 한국어
Unity의 충돌 해결 오버라이드
네트워크 문제

문제 해결

이 섹션은 다음 문제에 관한 정보를 제공합니다.

네트워크 관련 문제가 발생한 경우 Unity 패키지 관리자 진단 툴을 실행할 수도 있습니다. 자세한 내용은 네트워크 문제를 참조하십시오.

Package Manager 창의 오류 메시지

패키지 관리자는 문제가 발생하면 Package Manager 창에 오류 표시기를 표시합니다.

  • 시스템 관련 문제

    상태 표시줄에 나타나는 오류 메시지는 패키지 관리자가 특정 패키지와 관련되지 않은 문제를 감지했다는 의미입니다. 예를 들어 패키지 관리자가 패키지 레지스트리 서버를 찾지 못하면 상태 표시줄에 다음의 메시지를 표시합니다.

    네트워크 오류 메시지
    네트워크 오류 메시지

    네트워크가 패키지 레지스트리 서버에 도달하지 못하는 경우 네트워크에 연결 문제가 발생했기 때문일 수 있습니다. 여러분 또는 시스템 관리자가 네트워크 오류를 수정하면 상태 표시줄의 내용이 지워집니다.

    네트워크 연결이 작동하지만 Unity 계정에 로그인하지 않은 경우 패키지 관리자는 에셋 패키지를 표시하지 않습니다. My Assets 범위를 사용하려고 시도하면 패키지 관리자가 상태 표시줄에 다음 오류를 표시합니다.

    Unity 계정에서 로그아웃됨
    Unity 계정에서 로그아웃됨

    리스트 뷰Sign in 버튼을 클릭하여 Unity Hub를 통해 Unity 계정에 로그인합니다.

  • 패키지별 문제

    로드 또는 설치 시(예: 로드할 패키지 버전을 결정하는 경우) 특정 패키지에 문제가 발생하면 오류 아이콘()이 영향을 받은 패키지 (A) 옆에 있는 패키지 리스트에 나타납니다. 어떤 문제인지 확인하려면 영향을 받은 패키지의 세부 정보 뷰를 열어 상세한 오류 메시지 (B)를 확인하십시오.

    종속성 오류 메시지
    종속성 오류 메시지

패키지 관리자 누락 또는 창이 열리지 않음

package.manifest 파일이 손상되면 다음과 유사한 오류가 Unity 콘솔에 나타납니다.

패키지를 확인하지 못함: [<project-path>/Packages/manifest.json] 파일이 유효한 JSON이 아님:
  44:1에서 예기치 못한 토큰 '}'
  }

오류 메시지에 포함된 정보를 사용하여 JSON을 수정할 수 있습니다. 다양한 온라인 검증기를 사용하여 문제를 해결할 수 있습니다. 수정된 파일을 저장하면 Unity가 Package Manager 창을 다시 로드합니다.

2019.3부터 package.manifest 파일에 com.unity.package-manager-ui 패키지에 대한 레퍼런스를 포함할 수 없습니다. 프로젝트의 패키지 설정을 초기화하거나 매니페스트의 종속성 리스트에서 다음 줄을 제거할 수 있습니다.

    "com.unity.package-manager-ui": "2.1.1",

Package Manager 창이 그래도 보이지 않으면 Unity를 다시 시작하십시오.

문제가 여전히 해결되지 않으면 프로젝트 매니페스트가 “exclude”를 패키지 버전으로 사용하는지 확인하십시오. 이 값은 dependencies 속성에 더 이상 사용되지 않습니다. 이러한 줄이 보이면 전체 줄을 제거하십시오. 패키지 관리자는 프로젝트에 종속성으로 명시적으로 포함된 패키지만 설치합니다. 따라서 해당 항목을 제거하면 패키지 관리자가 해당 패키지를 무시하고 설치하지 않습니다.

패키지 관리자가 여전히 로드되지 않으면 패키지가 인식되지 않음프로젝트의 패키지 설정 초기화에 나온 절차를 따르십시오.

Unity 버전 업그레이드 이후 발생하는 문제

프로젝트를 새로운 Unity 버전으로 업그레이드하는 경우 패키지 관리자는 호환이 불가능한 패키지를 호환이 가능한 버전으로 자동으로 업데이트합니다. 하지만 패키지가 컴파일되지 않으면 패키지 관리자가 콘솔에 오류 메시지를 표시합니다.

이러한 메시지를 해결하려면 오류 메시지를 읽은 후 해결할 수 있는 문제를 수정해야 합니다. 예를 들어 패키지에 다른 패키지나 버전에 대한 종속성이 없는 경우 패키지를 직접 설치할 수 있습니다.

또한 제대로 동작할 때까지 다음과 같은 해결책을 순서대로 시도해 볼 수 있습니다.

  • 프로젝트 아래에 있는 Packages 폴더를 백업한 후 삭제합니다.
  • 프로젝트의 Packages 폴더에 있는 패키지 소스를 백업한 후 삭제하여 manifest.json 파일만 남겨둡니다. 그런 다음 프로젝트를 다시 로드하십시오.
  • 빈 프로젝트를 새로 생성합니다. Package Manager 창이 성공적으로 로드되면 문제가 있는 프로젝트의 Library/PackageCache/com.unity.package-manager-ui@<version> 폴더를 새로 생성한 프로젝트에 있는 동일한 폴더로 교체합니다.
  • 최후의 수단으로 프로젝트를 재설정하여 기본 패키지 설정으로 돌아간 후 동작할 때까지 패키지를 한 번에 하나씩 추가할 수 있습니다.

패키지 설치 실패

레지스트리에서 새 패키지를 설치할 수 없는 경우에는 권한 관련 문제일 수 있습니다.

다음의 캐시 폴더에 대한 전체 권한이 있어야 합니다.

  • Windows: C:\Users\yourname\AppData\Local\Unity\cache
  • MacOS: ~/Users/Library/Unity/cache

네트워크 문제라고 생각되면 방화벽프록시 설정을 확인하십시오.

때때로 학교, 관공서 같은 기관이나 네트워크 보호 작업 공간에서는 프록시 서버를 설치하여 네트워크와 인터넷 간 트래픽을 제어하고, Unity 또는 패키지 관리자에서 인식되지 않는 고유한 서버 인증서를 사용하십시오. 자세한 내용은 네트워크 관리자에 문의하시기 바랍니다.

패키지가 인식되지 않음

컴파일 오류가 많이 표시된다면 Unity가 기존 프로젝트의 패키지를 인식하지 못하기 때문일 수 있습니다. 이 경우 .NET 컴포넌트가 누락되었을 가능성이 있습니다.

Windows:

  1. Other Toolsets에서 .NET Core cross-platform development workload가 선택된 상태로 Visual Studio 2017 버전 15.9.0 이상을 다운로드하여 설치합니다.
  2. .NET SDK v2.2.101 컴포넌트를 다운로드하여 설치합니다.

MacOS:

  1. .NET SDK v2.2.101 컴포넌트를 다운로드하여 설치합니다.

  2. Visual Studio의 권장 업데이트를 설치합니다.

  3. Homebrew를 사용하여 mono를 브루잉(brew)하고 설치합니다.

      brew update
        brew install mono # optional
        brew upgrade mono
    
  4. 필요한 경우 프로젝트의 Library/obj/temp 폴더를 삭제하고 Unity를 재시작합니다.

  5. 여전히 문제가 발생하면 컴퓨터를 재부팅합니다.

Windows에서 hostfxr.dll에 대한 로딩 오류

콘솔이 hostfxr.dll 라이브러리를 찾았지만 Unity가 C:\<path_to_app>\hostfxr.dll에서 로드하지 못했다고 보고하는 경우 KB2999226KB2533623 패치를 모두 설치한 후 Windows 7 또는 Windows Server 2008 R2에서 이 오류를 수정할 수 있습니다.

프로젝트의 패키지 설정 초기화

프로젝트에 패키지 문제가 너무 많은 경우에는 프로젝트를 해당 Unity 에디터 버전의 기본 패키지 설정으로 초기화할 수 있습니다. 이 작업을 수행하면 프로젝트의 모든 패키지가 초기화됩니다. 이렇게 하면 문제의 원인을 해결하지는 못하더라도 최소한 어떤 문제인지는 파악할 수 있습니다.

참고: 패키지 설정 초기화는 되돌릴 수 없으므로, manifest.json 파일을 미리 백업해두거나 프로젝트에 소스 컨트롤이 적용되는지 확인하십시오. 또한 프로젝트를 클로닝한 후 해당 클로닝에 대한 작업을 테스트함으로써 추가적인 조치를 취할 수도 있습니다.

기본 패키지 설정으로 되돌아가려면 Help 메뉴에서 Reset Packages to defaults를 선택하십시오.

Help > Reset Packages to defaults
Help > Reset Packages to defaults

프로젝트 클로닝 재설정

최종 변경 사항을 적용하기 전에 다음 단계에 따라 패기지 초기화를 테스트해볼 수도 있습니다.

  1. 프로젝트 폴더를 복사하여 붙여넣은 후 쉽게 찾을 수 있는 이름을 지정하여 프로젝트 클로닝을 생성합니다. 예를 들어 프로젝트 이름이 MyProject인 경우 clone_MyProject라는 이름을 지정할 수 있습니다.

  2. 새로 생성한 프로젝트 클로닝을 로드합니다.

  3. 도움말 메뉴에서 Reset Packages to defaults를 선택합니다.

    프로젝트 크기에 따라 이 작업에 몇 분 정도가 소요될 수 있습니다.

  4. 패키지가 성공적으로 재설정되었는지 확인합니다. 성공했다면 원본 프로젝트에 대해 안심하고 작업을 수행할 수 있습니다.

Git URL의 인증 문제

SSH 프로토콜을 사용하여 Git URL을 통해 패키지를 설치하는 경우 ssh-agent*가 백그라운드에서 실행되고 PID 환경 변수가 올바르게 설정되었더라도 Git에서 인증 오류를 수신할 수 있습니다.

스크립트가 ssh-agent를 백그라운드에서 성공적으로 시작할 수 있으면 익스포트한 환경 변수는 해당 스크립트를 실행하는 Bash 셸과 해당 시점 이후에 실행되는 자식 프로세스에만 적용됩니다. 이는 스크립트가 부모 프로세스, 관련이 없는 프로세스 또는 이전에 생성된 자식 프로세스의 환경 변수를 변경하지 못하기 때문입니다. 스크립트가 .bashrc에 있는 경우에도 Bash 셸에서만 실행됩니다.

Unity 아이콘을 더블 클릭하거나 허브를 사용하여 Windows와 macOS 모두에서 Unity 또는 Unity Hub를 시작하는 경우에는 셸에서 실행되지 않으므로 스크립트가 실행되지 않습니다. 즉, Unity 에디터가 이러한 변수들을 설정하지 못하기 때문에 Unity에서 호출된 Git 프로세스도 변수를 설정할 수 없습니다.

이 문제를 해결하려면 다음 중 하나를 수행하십시오.

  • 허브를 열기 전에 Bash 셸을 먼저 열고 해당 셸에서 Unity 에디터를 수동으로 실행합니다.
  • Windows를 사용하는 경우 setx 커맨드를 사용하면 허브 프로세스가 시작하기 전에 Windows 레지스트리의 환경 변수를 영구적으로 설정할 수 있습니다. 이 해결책은 스크립트가 시작 시 한 번 실행되고 허브가 Windows에서 시작하지 않는 경우에 사용하면 매우 유용합니다. 다음 예를 참조하십시오.
  # env 변수를 네이티브 창에 노출
    setx SSH_AGENT_PID "$SSH_AGENT_PID"
    setx SSH_AUTH_SOCK "$SSH_AUTH_SOCK"
Unity의 충돌 해결 오버라이드
네트워크 문제