In Unity there is across-platformway to copy a string to Clipboard. Using the GUIUtility class I’m going to show you how to copy a string into the user’s Clipboard. This should work in Unity 2017 and beyond.
By using the GUIUtility class, from UnityEngine, we can fitany C# objectwith a ToString() function into the Clipboard!
Clipboard Extension
To make it easily accessible I made the function as a string extension. By doing it this way we can use the function on any string anywhere in the code.
using UnityEngine;
public static class ClipboardExtension
{
/// <summary>
/// Puts the string into the Clipboard.
/// </summary>
public static void CopyToClipboard(this string str)
{
GUIUtility.systemCopyBuffer = str;
}
}
Example
Here is an example on how to copy different elements into the Clipboard using the ClipboardExtension:
public string GetSomeString()
{
return "This is a string coming from a function!";
}
public void TestCopyToClipboard()
{
// + Using a standard string
string testString = "Am I in the Clipboard?";
testString.CopyToClipboard();
// The content of test1 is in the Clipboard now!
// + Using a method to get a string
GetSomeString().CopyToClipboard();
// The content returned by GetSomeString() is in the Clipboard now!
// + Using a C# object with a ToString() method
Color colorTest = Color.red;
colorTest.ToString().CopyToClipboard();
// The string version of the object colorTest is in the clipboard now!
}
You can try out this code for yourself! Run it, then try pasting your Clipboard into a notepad. It has been tested andworks on PC, Android and iOS!