2016-03-08 85 views
1

我試圖讀取Unity中C#剪貼板中的文本,然後將其設置爲變量。從剪貼板中讀取文本

我看到這個報道,但它似乎並沒有在統一的工作: https://msdn.microsoft.com/en-us/library/kz40084e(v=vs.110).aspx

我只是想能夠閱讀純文本。沒有圖像或任何東西。我也發現了一些其他的文章,但是沒有一個代碼可以在Unity中使用。

+1

你能在Unity3D C#腳本中顯示代碼嗎?另外,何時您想要訪問剪貼板數據? –

+0

您使用什麼代碼訪問數據?爲什麼它不起作用?... – TheLethalCoder

+0

我想在程序加載時在開始時訪問它。 – Andrew

回答

4

我做了一個快速示例,展示如何使用System.Windows.Forms命名空間中的Clipboard類。事實證明,該方法需要[STAThread]方法屬性才能工作。我不知道這是否可以在Unity3D C#腳本中使用。

[STAThread] 
static void Main(string[] args) 
{ 
    if (Clipboard.ContainsText(TextDataFormat.Text)) 
    { 
     string clipboardText = Clipboard.GetText(TextDataFormat.Text); 
     // Do whatever you need to do with clipboardText 
    } 
} 

要了解更多關於什麼屬性用於,看看這個問題(更重要的是,它的答案):What does [STAThread] do?

編輯:

我做了一點點挖掘,它看起來像Unity3D有一個系統剪貼板的包裝。我還沒有嘗試過,但它看起來應該可以跨越不同的操作系統,而不僅僅是Windows:GUIUtility.systemCopyBuffer

+0

不能在Unity3D中使用它。即使他能夠導入所需的DLL,它也不會在其他平臺上工作。它只能在Windows上運行。 – Programmer

+1

@程序員的確如此。我找到了關於'EditorGUIUtility.systemCopyBuffer'的Unity3D文檔的鏈接,看起來它可以用來訪問操作系統的剪貼板。我編輯了我的答案以包含鏈接,但我還沒有嘗試過。 –

+1

+1。 EditorGUIUtility.systemCopyBuffer僅適用於Unity編輯器。 GUIUtility.systemCopyBuffer是正確的類/方法。更新你的答案。這將適用於除Web/WebGL之外的所有平臺。 – Programmer