この記事でのバージョン
Unity 2018.4.8f1
はじめに
今回はクリップボードへの文字列の設定する方法、つまりコピーを実装する方法のご紹介です。
なお、Unityエディタ上はもちろん、MacやiOSと言った実機上でも動作します。
GUIUtility.systemCopyBuffer
クリップボードの文字列にアクセスするにはGUIUtilityのsystemCopyBufferを使います。
例えば以下のような感じで設定も取得も可能です。
//コピー前のクリップボードの文字列をログで表示 Debug.Log($"コピー前 : {GUIUtility.systemCopyBuffer}"); //クリップボードへ文字を設定(コピー) GUIUtility.systemCopyBuffer = "abc012あいう漢字"; //コピー後のクリップボードの文字列をログで表示 Debug.Log($"コピー後 : {GUIUtility.systemCopyBuffer}");
ただし、コピーした際に通知とかは特に出ないので、別途ユーザに伝える必要があります。
なお、エディタ拡張であればEditorUtility.DisplayDialogを使うのが簡単です。
//クリップボードにコピーする文字列 string coptyText = "abc012あいう漢字"; //クリップボードへ文字を設定(コピー) GUIUtility.systemCopyBuffer = coptyText; //設定した文字列をダイアログで伝える EditorUtility.DisplayDialog("クリップボードに文字を貼り付けました", coptyText, "OK");