What?
アクセサ (もどき) として任意のオブジェクトからアクセスさせる際の型ベースのデータストアを提供します。
Why?
ConditionalWeakTable
が使いたい!
- しかし Unity は2017年7月現在、 .NET 3.5 系である
- Experimental として .NET 4.6 を選択可能ではある
- 無いなら作っちまおう!
Install
$ npm install @umm/accessor-utility-core
Usage
- 正直、このパッケージだけでは殆ど何もできません。
- こいつが提供する
AccessorUtility
を継承したクラスをこさえてください。
- んで、それっぽい interface でも書いて、それの拡張クラスとしてアクセサもどきを実装します。
using UnityEngine;
using AccessorUtility;
public class SampleAccessor : AccessorUtility<MonoBehaviour, Component> {}
public interface IRectTransformAccessor {
}
public static class RectTransformAccessorExtension {
public static RectTransform RectTransform(this IRectTransformAccessor self) {
MonoBehaviour instance = (MonoBehaviour)self;
return SampleAccessor.instanceMapMap[instance][typeof(RectTransform)];
}
}
public class Hoge : MonoBehaviour, IRectTransformAccessor {
public void Start() {
Debug.Log(this.RectTransform().sizeDelta);
}
}
License
Copyright (c) 2017 Tetsuya Mori
Released under the MIT license, see LICENSE.txt