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);
        }
Esempio n. 4
0
        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();
        }
Esempio n. 6
0
    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);
    }
Esempio n. 7
0
        public static bool PasteSerializedFromBaseValid(MenuCommand command)
        {
            var dest = new SerializedObject(command.context);

            return(EditorUtilityExtensions.MatchingPropertyCount(source, dest) > 0);
        }