public static void Show(
        Color color,
        OnColorSelectedCallback onColorSelectedCallback,
        OnFinishCallback onFinishCallback,
        OnEarlierIOSVersionsCallback onEarlierIOSVersionsCallback)
    {
        if (gcHandleForRGBColorSelectedCallback != IntPtr.Zero ||
            gcHandleForColorSelectedCallback != IntPtr.Zero ||
            gcHandleForOnFinishCallback != IntPtr.Zero)
        {
            return;
        }

        // コールバック関数をGCされないようにAllocしてハンドルを取得する。
        gcHandleForColorSelectedCallback        = (IntPtr)GCHandle.Alloc(onColorSelectedCallback, GCHandleType.Normal);
        gcHandleForOnFinishCallback             = (IntPtr)GCHandle.Alloc(onFinishCallback, GCHandleType.Normal);
        gcHandleForOnEarlierIOSVersionsCallback = (IntPtr)GCHandle.Alloc(onEarlierIOSVersionsCallback, GCHandleType.Normal);

        // 普通の引数 + コールバック関数のハンドル + コールバック関数を呼び出すためのstaticなメソッド
        _CallColorPickerPlugin(
            color.r,
            color.g,
            color.b,
            color.a,
            CallColorSelectedCallback,
            CallOnFinishCallback,
            CallOnEarlierIOSVersionsCallback);
    }
    static void CallColorSelectedCallback(float red, float green, float blue, float alpha)
    {
        GCHandle handle = (GCHandle)gcHandleForColorSelectedCallback;
        OnColorSelectedCallback callback = handle.Target as OnColorSelectedCallback;

        var color = new Color(red, green, blue, alpha);

        callback(color);
    }