public virtual void CopyComponents(T1 source, T2 destination) { var sourceSo = new SerializedObject(source); var destSo = new SerializedObject(destination); EditorUtilityExtensions.CopySerializedPolymorphic(sourceSo, destSo); }
private static void MergeExpressionsMenus(VRCExpressionsMenu[] expressions) { var dest = EditorUtilityExtensions.GetSaveFilePath("Save merged expressions menu to...", "MergedVRCExpressionsMenu", "asset"); var expr = CreateInstance <VRCExpressionsMenu>(); expr.MergeExpressions(expressions); AssetDatabase.CreateAsset(expr, dest); }
private static void MergeExpressionParameters(VRCExpressionParameters[] parameters) { var dest = EditorUtilityExtensions.GetSaveFilePath("Save merged expression parameters to...", "MergedVRCExpressionParameters", "asset"); var parameter = CreateInstance <VRCExpressionParameters>(); parameter.InitExpressionParameters(); parameter.MergeParameters(parameters); AssetDatabase.CreateAsset(parameter, dest); }
public static void PasteSerializedFromBase(MenuCommand command) { if (source == null) { Debug.LogError("No serialized data stored on the clipboard, copy first"); return; } EditorUtilityExtensions.CopySerializedPolymorphic(source, new SerializedObject(command.context)); }
private static void MergeAnimatorControllers(AnimatorController[] controllers) { var dest = EditorUtilityExtensions.GetSaveFilePath("Save merged animator controller to...", "MergedAnimatorController", "controller"); var controller = new AnimatorController(); AssetDatabase.CreateAsset(controller, dest); controller.MergeControllers(controllers); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); }
protected void GenerateKeysByVariableName() { EditorUtilityExtensions.RecordObject(this, "Generate keys"); foreach (var dataEntry in dataEntries) { if (string.IsNullOrEmpty(dataEntry.key.Value) && dataEntry.variableToReplace != null) { dataEntry.key.Value = GenerateKey(dataEntry.variableToReplace.name); } } foreach (var eventEntry in gameEventEntries) { if (string.IsNullOrEmpty(eventEntry.key.Value) && eventEntry.eventToReplace != null) { eventEntry.key.Value = GenerateKey(eventEntry.eventToReplace.name); } } EditorUtilityExtensions.RecordPrefabInstancePropertyModifications(this); }
public static bool PasteSerializedFromBaseValid(MenuCommand command) { var dest = new SerializedObject(command.context); return(EditorUtilityExtensions.MatchingPropertyCount(source, dest) > 0); }