版本:Unity 6 (6000.0)
语言英语
  • C#

EditorGUIUtility.systemCopyBuffer

建议进行修改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户建议的每一项修改,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的建议修改无法提交。请在几分钟后尝试<a>重新提交</a>。感谢您花时间帮助我们改进 Unity 文档的质量。

关闭

取消

public static string systemCopyBuffer;

描述

系统复制缓冲区。

使用此项,可以为您的应用实现复制并粘贴操作。systemCopyBuffer 捕获机器上选择的所有文本。这并不一定是 Unity 中选定的文本。可以读取和写入 systemCopyBuffer
保存多个“复制”命令。

// Example that shows up to 5 strings.  These strings are captured from Copy
// commands on the machine.  The Current buffer at the bottom of the window shows whatever string
// is copied.  The string can be copied to one of the five Save rows when the Load toggle is
// five Save rows when the Load toggle is off and one of the horizontal buttons is pressed.

using UnityEngine; using UnityEditor;

public class SystemCopyBufferExample : EditorWindow { string[] savedCopies = new string[5]; bool load = false;

[MenuItem("Examples/Example showing systemCopyBuffer")] static void systemCopyBufferExample() { SystemCopyBufferExample window = EditorWindow.GetWindow<SystemCopyBufferExample>(); window.Show(); }

void OnGUI() { load = EditorGUILayout.Toggle("Load:", load);

EditorGUILayout.BeginHorizontal(); for (int i = 0; i < savedCopies.Length; i++) if (GUILayout.Button(i.ToString())) if (load) EditorGUIUtility.systemCopyBuffer = savedCopies[i]; else savedCopies[i] = EditorGUIUtility.systemCopyBuffer; EditorGUILayout.EndHorizontal();

for (int j = 0; j < savedCopies.Length; j++) EditorGUILayout.LabelField("Saved " + j, savedCopies[j]);

EditorGUILayout.LabelField("Current buffer:", EditorGUIUtility.systemCopyBuffer); if (GUILayout.Button("Clear all saves")) for (int s = 0; s < savedCopies.Length; s++) savedCopies[s] = ""; }

void OnInspectorUpdate() { this.Repaint(); } }

注意:iOS 和 Android 不支持此功能。