using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using System.Reflection;
using UnityEditorInternal;
public class EditorWindowCopyComponentsData : EditorWindow
{
static Component[] storedComponents;
[MenuItem("SmartCopy/ Copy all Components")]
private static void CopyAllComponents()
{
if (Selection.gameObjects.Length != 0)
{
storedComponents = Selection.activeGameObject.GetComponents<Component>();
}
else
{
Debug.Log("Please select GameObject to copy components from.");
}
}
[MenuItem("SmartCopy/ Paste all Components")]
private static void PasteAllComponents()
{
if (Selection.gameObjects.Length != 0)
{
if (storedComponents != null)
{
foreach (GameObject targetObject in Selection.gameObjects)
{
foreach (Component targetComponent in storedComponents)
{
ComponentUtility.CopyComponent(targetComponent);
ComponentUtility.PasteComponentAsNew(targetObject);
}
}
return;
}
Debug.Log("No Component to copy.");
return;
}
Debug.Log("No GameObject Selected to paste Components.");
}
[MenuItem("SmartCopy/ Delete all Components")]
private static void DeleteAllComponents()
{
foreach (Component targetComponent in Selection.activeGameObject.GetComponents<Component>())
{
DestroyImmediate(targetComponent);
}
}
[MenuItem("SmartCopy/ Paste Difference")]
private static void CopyDifference()
{
Debug.Log("Under Construction=====");
}
private static bool FillerFunc(Component c)
{
return true;
}
}
Я не хочу копировать игровой объект из иерархии, а компоненты игрового объекта. Это работает нормально в том же проекте, но есть ли способ сохранить компонент (ы) также в некотором буфере памяти, может быть, буфер обмена и использовать скрипт в другом проекте, чтобы скопировать компонент (ы) в другой игровой объект в другом проекте?
Может быть, есть необходимость сначала создать / добавить компоненты в другом проекте, а затем сделать копию не совсем уверенной.
Или, возможно, записать в текстовый файл имена сохраненных компонентов, а затем каждый настройки и значения компонентов, а затем считывание информации в другом проекте, создание компонентов по именам и запись настроек и значений в компонент / ы?
Идея состоит в том, чтобы скопировать значения компонентов / с или компонентов / с между проектами.
Снимок экрана:
![Copy component](https://i.stack.imgur.com/Af1B5.jpg)