(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]

クリップボードへの文字列の設定(コピー)【Unity】


このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 2018.4.8f1


はじめに

今回はクリップボードへの文字列の設定する方法、つまりコピーを実装する方法のご紹介です。

f:id:kan_kikuchi:20191029090908g:plain


なお、Unityエディタ上はもちろん、MacやiOSと言った実機上でも動作します。


GUIUtility.systemCopyBuffer

クリップボードの文字列にアクセスするにはGUIUtilityのsystemCopyBufferを使います。



例えば以下のような感じで設定も取得も可能です。

//コピー前のクリップボードの文字列をログで表示
Debug.Log($"コピー前 : {GUIUtility.systemCopyBuffer}");
    
//クリップボードへ文字を設定(コピー)
GUIUtility.systemCopyBuffer = "abc012あいう漢字";
    
//コピー後のクリップボードの文字列をログで表示
Debug.Log($"コピー後 : {GUIUtility.systemCopyBuffer}");
f:id:kan_kikuchi:20191029090908g:plain


ただし、コピーした際に通知とかは特に出ないので、別途ユーザに伝える必要があります。

なお、エディタ拡張であればEditorUtility.DisplayDialogを使うのが簡単です。




//クリップボードにコピーする文字列
string coptyText = "abc012あいう漢字";

//クリップボードへ文字を設定(コピー)
GUIUtility.systemCopyBuffer = coptyText;
    
//設定した文字列をダイアログで伝える
EditorUtility.DisplayDialog("クリップボードに文字を貼り付けました", coptyText, "OK");
f:id:kan_kikuchi:20191029084911j:plain