LoginSignup
0
1

More than 3 years have passed since last update.

UnityでiOSのUIColorPickerViewControllerを使うPlugin

Last updated at Posted at 2021-03-02

はじめに

iOS14から導入されたUIColorPickerViewControllerをUnityから使いたかったのでPluginを書きました。

レポジトリ

Unitypackage

UIColorPickerManager.unitypackage

Sample

public void Show(){
    Color currentColor = Color.white;
    UIColorPickerManager.Show(currentColor, OnSelectColor, OnFinish);
}

// call when color selected.
void OnSelectColor(Color selectedColor){
    // ...
}

// call UIColorPickerViewController finished.
void OnFinish(){

}

UIColorPickerManager.Show

UIColorPickerManager.Show にはいくつかのオーバーライドがあります。

選択された色をColorオブジェクトで受け取る

void Show (
    Color currentColor,
    OnColorSelectedCallback onColorSelectedCallback,  // Colorオブジェクトを受け取るコールバック関数
    OnFinishCallback onFinishCallback)

選択された色をRGBAで受け取る場合

void Show (
    Color currentColor,
    OnRGBColorSelectedCallback onRGBColorSelectedCallback,  // RGBAを受け取るコールバック関数
    OnFinishCallback onFinishCallback)

選択された色をColorオブジェクトで受け取り、iOS14未満の時の処理を必要とする場合

void Show (
    Color currentColor,
    OnColorSelectedCallback onColorSelectedCallback,
    OnFinishCallback onFinishCallback,
    OnEarlierIOSVersionsCallback onEarlierIOSVersionsCallback)

選択された色をRGBAで受け取り、iOS14未満の時の処理を必要とする場合

void Show (
    Color currentColor,
    OnRGBColorSelectedCallback onRGBColorSelectedCallback,
    OnFinishCallback onFinishCallback,
    OnEarlierIOSVersionsCallback onEarlierIOSVersionsCallback)

参考:上記のコードで使われているdelegateの定義

    // - colorPickerViewControllerDidSelectColor: 用コールバック
    public delegate void OnColorSelectedCallback(Color color);
    public delegate void OnRGBColorSelectedCallback (float r, float g, float b, float a);

    // - colorPickerViewControllerDidFinish: 用コールバック
    public delegate void OnFinishCallback();

    // @available(iOS 14.0, *) がfalseの時用コールバック
    public delegate void OnEarlierIOSVersionsCallback();

ライセンス

ライセンスはMITです。

補足

いないかもしれませんが、ソースコードを読みたいという方がいれば、
先に、 [Unity]ネイティブプラグインからコールバック関数を呼ぶ[iOS]
という記事を読むことをお勧めします。このプラグインは、その記事の応用になっています。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1