MasterMemory와 Airtable에서 주인을 빠르게 읽습니다.

일의 발단


좋은 기사를 쓰시고 Airtable에 관심이 많으셔서 많이 찾아보시고 Master Memory를 발견하셔서 다 같이 밥을 해 보고 Unity에서 잘 사용하고 싶어요.

어쨌든 참고로


지루한 보도
https://qiita.com/kyubuns/items/dc47cf7c9af38f13c9ee
Airtable
https://airtable.com/
에어테이블의.NET 클라이언트
https://github.com/ngocnicholas/airtable.net
↑ 제이슨이다.NET를 사용했기 때문에 제가 Utf8Json을 위해 만든 물건입니다.
https://github.com/yKimisaki/AirtableClient
Utf8Json
https://github.com/neuecc/Utf8Json
시작할 때마다 Airtable에 접근하는 것이 느리기 때문에 그 데이터를 바이너리로 캐시합니다.
그 캐시를 만들어서 2진법에서 시계로 바꾸는 좋은 것은 MasterTable이다.
https://github.com/Cysharp/MasterMemory

작전



↑ 같은 책상
MasterCache.cs
var appleMaster = MasterCache.TestMaster.FindByID(1);
이렇게 유니티에서 사용합니다.

테스트 마스터 클래스 만들기


자동생성을 하고 싶지만 번거로운 경험만 많기 때문에 열심히 써야 한다.
TestMaster.cs
[MessagePackObject(true)]
[MemoryTable(nameof(MainGameMaster))]
public class TestMaster
{
    [PrimaryKey]
    public int ID { get; set; }

    public string Name { get; set; }

    public int Price { get; set; }
}
주의해야 할 것은 PrimaryKey 속성은 필드가 아닌 속성에만 추가될 수 있기 때문에 {get;set;}이것은 필수적이며 Unity용 mpc입니다.exe(MessagePack의 분해기 생성)는 TestMaster의 분해기가 생성돼도 자동으로 생성되지 않는 TestMaster[]입니다. 즉, 사용자 정의 클래스의 배열이 자동으로 생성되지 않기 때문에 미리 만들지 않으면 욕을 먹습니다.아래 생성된 MasterMemory Resolver 등록!!!

UnityEditor에서 필요한 것을 생성합니다.



이런 것을 만들면 메뉴에서 그렇게 MessagePack의 해상도와 AssetBundle을 생성할 수 있습니다.
가능하다면 메인 메모리 테이블을 생성합니다.
보통 Master Memory입니다.Generator.너는 스스로 나를 두드려도 된다.

Airtable 또는 바이너리 파일에서 MasterMemory 가져오기


이런 느낌, 여러 경로, 구체적으로 말하면 고속 캐시의 2진법, 또는 Airtable에서 직접 Master Cache 같은 메모리에 전개된 클래스에 등록된 상태죠.

Airtable에서 바이너리 만들기


그리고 아주 오래된 Builder.cs 근처
[MenuItem("Build/MasterMemory/Binaries")]
public static void BuildBinaries()
{ 
    var binary = ScriptableObject.CreateInstance<BinaryObject>();

    Task.Run(async () =>
    {
        binary.Value = await new AirtableMasterLoader().LoadAsync();
    }).Wait();

    AssetDatabase.CreateAsset(binary, ClientMasterLoader.BinaryAssetPath);
    AssetDatabase.Refresh();

    Debug.Log($"Build completed. Binary is created on {ClientMasterLoader.BinaryAssetPath}");
}
에서 기술한 장면은 다음과 같은 절차를 이용하여 명세표를 작성하여 개념 디자인에서 체량의 부피를 분석하도록 한다.

정밀 가공


그리고 그 바이너리 파일을 AssetBundle로 설정하세요.
await MasterCache.RegisterAsync(new ClientMasterLoader());
하면, 만약, 만약...
MasterCache.cs
var appleMaster = MasterCache.TestMaster.FindByID(1);
이것은 달성할 수 있다.

총결산


어수선한 스미슨은 응용 프로그램의 시작 시간 = 로그인 용이도와 관련된 부분을 생각하기 때문에 가능한 한 호스트 등을 클라이언트에 캐시하는 것을 권장한다.
그러면 업데이트가 있으면 매번 AssetBundle 등을 통해 DL을 실행할 수 있습니다.

좋은 웹페이지 즐겨찾기