패키지 관리자에서 필요한 패키지 가져오기
7250 단어 PackageManagerUnityEditorUnityC#
입문
빨리 민주화
안녕하십니까? 광고 달력 19일째에 맡은 피뢰입니다.유니티 패키지를 나눠준 사람들 중 일부는 상대방과 자신의 프로젝트에 들어간 자원의 괴리로 고통스러웠다고 생각한다.
예를 들어 우리가 PPSv2에 좋은 그림을 제공했더라도 목적지를 가져온 프로젝트에 PackageManager의 PostProcessing이 없으면 그 매력을 전달할 수 없다.
이번에는 편집기를 사용하여 PackageManager를 확장하는 방법을 알아보겠습니다.
PackageManager 사용
PackageManager에 대한 기본 작업은 UnityEditor.PackageManager
에서 수행됩니다.
https://docs.unity3d.com/ja/2017.4/ScriptReference/PackageManager.Client.html
가져오기 패키지 목록 가져오기
Client.List
를 사용하여 가져오기 패키지 목록을 가져옵니다.목록의 반환 값은 목록 요청입니다.
https://docs.unity3d.com/ja/2017.4/ScriptReference/PackageManager.Client.List.html
반환값의 이름에서도 알 수 있듯이 이 함수는 비동기적으로 실행된다.ListRequest에는 Status, Result 등의 변수가 있으므로 비동기적으로 쓰기를 참조하십시오.
↓ 예시 코드 (가져온 모든 패키지 출력)using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEditor;
using UnityEditor.PackageManager;
using UnityEngine;
public class ListPackage
{
[MenuItem("PackageManager/List")]
static async void List()
{
var listRequest = Client.List();
while (listRequest.Status == StatusCode.InProgress)
{
await Task.Delay(100);
}
if (listRequest.Status == StatusCode.Success)
{
var result = "";
foreach (var package in listRequest.Result)
{
result += package.packageId + "\n";
}
Debug.Log(result);
}
if (listRequest.Status == StatusCode.Failure)
{
Debug.Log("Error!");
}
}
}
MenuItem 속성이 UnityEditor의 메뉴 모음에 PackageManager 모음을 추가했다고 생각하기 때문에 List를 누르십시오.한 순간의 지연 후에 다음 로그가 출력됩니다.
Hoge@huga
는 각 패키지의 packageID입니다.
@ 이전에는 패키지의 이름이었고, @ 이후에는 패키지의 버전이었다.
현재는 com.unity.hoge
(즉 유니티 공식) 패키지만 있지만, 앞으로 PackageManager를 사용할 수 있다면 다른 사람들은 패키지를 가져올 수 있을 것이다.
패키지 지정 및 가져오기
새 패키지를 가져올 때 사용합니다Client.Add
.추가된 반환 값은 AddRequest입니다.
이 동작을 실행하면 진도표를 표시하고 일반적인 방법의 패키지 install과 같은 방식으로 가져옵니다.
https://docs.unity3d.com/ja/2017.4/ScriptReference/PackageManager.Client.Add.html
목록과 같이 비동기적으로 처리됩니다.매개 변수의 packageIdOrName은 nam (@ 이전) 만 지정하면 최신 버전을 가져올 수 있습니다.packageID를 통해 버전 (@ 후면) 에 지정하면 이전 버전의 패키지가 가져옵니다.
↓ 예시 코드 (적절한 패키지 가져오기)
마찬가지로 메뉴 표시줄에 Add가 있어야 하니 눌러 보세요.이번에는 직접 PostProcessing으로 최신 버전을 설치합니다.시간이 지나면 아래의 진도표가 나와 도입의 진전을 전달할 것이다.
시간이 좀 더 지나면, AddRequest.상태는 Success이며 다음 로그를 출력합니다.
패키지를 보면 PostProcessing이 설치되어 있음을 알 수 있습니다.
설치된 패키지는 아무 일도 일어나지 않습니다.(특별히 처리하지 않고 Succeeded가 됨)
유니티 패키지 가져오기 후 PackageManager 호출 [InitializeOnLoad]
속성은 UnityEditor가 시작되고 그 자체가 컴파일될 때 클래스 구조 함수를 실행할 수 있도록 합니다.
여기에 방금 처리한 것을 적으면 유니티 패키지를 가져온 후 바로 패키지를 설치할 수 있습니다 (Unity Package와 Package Manager의 패키지는 헷갈리기 쉽습니다...)
그러나 구조 함수 자체에 async를 추가할 수 없기 때문에 구조 함수에서 다른 비동기적인 방법을 실행합시다.
끝내다
다른 IDE에서 Nuget 역할을 하는 Package Manager는 현재 json으로 퍼블릭 리포지토리를 직접 등록할 수 있을 것 같지만 민주화로 쉽게 패키지를 공개할 수 있었으면 좋겠다.
저는 개인적으로 가방에 추가된 자산류를git로 공유하지 않는 것을 좋아합니다.
Reference
이 문제에 관하여(패키지 관리자에서 필요한 패키지 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Hirai0827/items/91b86a4b60944e7e9e33
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
PackageManager에 대한 기본 작업은
UnityEditor.PackageManager
에서 수행됩니다.https://docs.unity3d.com/ja/2017.4/ScriptReference/PackageManager.Client.html
가져오기 패키지 목록 가져오기
Client.List
를 사용하여 가져오기 패키지 목록을 가져옵니다.목록의 반환 값은 목록 요청입니다.https://docs.unity3d.com/ja/2017.4/ScriptReference/PackageManager.Client.List.html
반환값의 이름에서도 알 수 있듯이 이 함수는 비동기적으로 실행된다.ListRequest에는 Status, Result 등의 변수가 있으므로 비동기적으로 쓰기를 참조하십시오.
↓ 예시 코드 (가져온 모든 패키지 출력)
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEditor;
using UnityEditor.PackageManager;
using UnityEngine;
public class ListPackage
{
[MenuItem("PackageManager/List")]
static async void List()
{
var listRequest = Client.List();
while (listRequest.Status == StatusCode.InProgress)
{
await Task.Delay(100);
}
if (listRequest.Status == StatusCode.Success)
{
var result = "";
foreach (var package in listRequest.Result)
{
result += package.packageId + "\n";
}
Debug.Log(result);
}
if (listRequest.Status == StatusCode.Failure)
{
Debug.Log("Error!");
}
}
}
MenuItem 속성이 UnityEditor의 메뉴 모음에 PackageManager 모음을 추가했다고 생각하기 때문에 List를 누르십시오.한 순간의 지연 후에 다음 로그가 출력됩니다.Hoge@huga
는 각 패키지의 packageID입니다.@ 이전에는 패키지의 이름이었고, @ 이후에는 패키지의 버전이었다.
현재는
com.unity.hoge
(즉 유니티 공식) 패키지만 있지만, 앞으로 PackageManager를 사용할 수 있다면 다른 사람들은 패키지를 가져올 수 있을 것이다.패키지 지정 및 가져오기
새 패키지를 가져올 때 사용합니다
Client.Add
.추가된 반환 값은 AddRequest입니다.이 동작을 실행하면 진도표를 표시하고 일반적인 방법의 패키지 install과 같은 방식으로 가져옵니다.
https://docs.unity3d.com/ja/2017.4/ScriptReference/PackageManager.Client.Add.html
목록과 같이 비동기적으로 처리됩니다.매개 변수의 packageIdOrName은 nam (@ 이전) 만 지정하면 최신 버전을 가져올 수 있습니다.packageID를 통해 버전 (@ 후면) 에 지정하면 이전 버전의 패키지가 가져옵니다.
↓ 예시 코드 (적절한 패키지 가져오기)
마찬가지로 메뉴 표시줄에 Add가 있어야 하니 눌러 보세요.이번에는 직접 PostProcessing으로 최신 버전을 설치합니다.시간이 지나면 아래의 진도표가 나와 도입의 진전을 전달할 것이다.시간이 좀 더 지나면, AddRequest.상태는 Success이며 다음 로그를 출력합니다.
패키지를 보면 PostProcessing이 설치되어 있음을 알 수 있습니다.
설치된 패키지는 아무 일도 일어나지 않습니다.(특별히 처리하지 않고 Succeeded가 됨)
유니티 패키지 가져오기 후 PackageManager 호출 [InitializeOnLoad]
속성은 UnityEditor가 시작되고 그 자체가 컴파일될 때 클래스 구조 함수를 실행할 수 있도록 합니다.
여기에 방금 처리한 것을 적으면 유니티 패키지를 가져온 후 바로 패키지를 설치할 수 있습니다 (Unity Package와 Package Manager의 패키지는 헷갈리기 쉽습니다...)
그러나 구조 함수 자체에 async를 추가할 수 없기 때문에 구조 함수에서 다른 비동기적인 방법을 실행합시다.
끝내다
다른 IDE에서 Nuget 역할을 하는 Package Manager는 현재 json으로 퍼블릭 리포지토리를 직접 등록할 수 있을 것 같지만 민주화로 쉽게 패키지를 공개할 수 있었으면 좋겠다.
저는 개인적으로 가방에 추가된 자산류를git로 공유하지 않는 것을 좋아합니다.
Reference
이 문제에 관하여(패키지 관리자에서 필요한 패키지 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Hirai0827/items/91b86a4b60944e7e9e33
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다른 IDE에서 Nuget 역할을 하는 Package Manager는 현재 json으로 퍼블릭 리포지토리를 직접 등록할 수 있을 것 같지만 민주화로 쉽게 패키지를 공개할 수 있었으면 좋겠다.
저는 개인적으로 가방에 추가된 자산류를git로 공유하지 않는 것을 좋아합니다.
Reference
이 문제에 관하여(패키지 관리자에서 필요한 패키지 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Hirai0827/items/91b86a4b60944e7e9e33텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)