Esempio n. 1
0
        internal override FixResult PerformFix(bool batchMode)
        {
            FixResult result;
            var       assetObject = AssetDatabase.LoadMainAssetAtPath(Path);

            // workaround for Unity 5.6 issue: LoadMainAssetAtPath returns null for settings assets
            if (assetObject == null)
            {
                var allObjects = AssetDatabase.LoadAllAssetsAtPath(Path);
                if (allObjects != null && allObjects.Length > 0)
                {
                    assetObject = allObjects[0];
                }
            }

            if (assetObject == null)
            {
                result = new FixResult(false);
                if (batchMode)
                {
                    Debug.LogWarning(Maintainer.LogPrefix + "Couldn't find settings asset for issue:\n" + this);
                }
                else
                {
                    result.SetErrorText("Couldn't find settings asset at\n" + Path);
                }
                return(result);
            }

            result = IssuesFixer.FixMissingReference(assetObject, PropertyPath, RecordLocation.Asset);
            return(result);
        }
        protected override FixResult PerformFix(bool batchMode)
        {
            CSSceneTools.OpenSceneResult openSceneResult = null;

            if (!batchMode)
            {
                openSceneResult = CSSceneTools.OpenScene(Path);
                if (!openSceneResult.success)
                {
                    return(FixResult.CreateError("Couldn't open scene"));
                }
            }

            FixResult result;

            var settingsObject = GetSettingsObjectWithThisIssue();

            if (settingsObject == null)
            {
                result = new FixResult(false);
                if (batchMode)
                {
                    Debug.LogWarning(Maintainer.LogPrefix + "Couldn't find " + SettingsKind + " object for issue:\n" + this);
                }
                else
                {
                    result.SetErrorText("Couldn't find " + SettingsKind + " object at\n" + Path);
                }
                return(result);
            }

            result = IssuesFixer.FixMissingReference(settingsObject, PropertyPath, RecordLocation.Scene);

            if (!batchMode)
            {
                CSSceneTools.SaveScene(openSceneResult.scene);
                CSSceneTools.CloseOpenedSceneIfNeeded(openSceneResult);
            }

            return(result);
        }
        internal override FixResult PerformFix(bool batchMode)
        {
            FixResult result;
            var       scriptableObjectAsset = AssetDatabase.LoadMainAssetAtPath(Path);

            if (scriptableObjectAsset == null)
            {
                result = new FixResult(false);
                if (batchMode)
                {
                    Debug.LogWarning(Maintainer.LogPrefix + "Can't find Scriptable Object for issue:\n" + this);
                }
                else
                {
                    result.SetErrorText("Couldn't find Scriptable Object\n" + Path);
                }
                return(result);
            }

            result = IssuesFixer.FixMissingReference(scriptableObjectAsset, propertyPath, RecordLocation.Asset);
            return(result);
        }
Esempio n. 4
0
        protected override FixResult PerformFix(bool batchMode)
        {
            Object    obj       = null;
            Component component = null;
            FixResult result;

            CSSceneTools.OpenSceneResult openSceneResult = null;

            if (!batchMode && Location == RecordLocation.Scene)
            {
                openSceneResult = CSSceneTools.OpenScene(Path);
                if (!openSceneResult.success)
                {
                    return(FixResult.CreateError("Couldn't open scene"));
                }
            }

            obj = GetObjectWithThisIssue();

            if (obj == null)
            {
                result = new FixResult(false);
                if (batchMode)
                {
                    Debug.LogWarning(Maintainer.LogPrefix + "Can't find Object for issue:\n" + this);
                }
                else
                {
                    result.SetErrorText("Couldn't find Object\n" + transformPath);
                }
                return(result);
            }

            if (!string.IsNullOrEmpty(componentName) && obj is GameObject)
            {
                component = GetComponentWithThisIssue(obj as GameObject);

                if (component == null)
                {
                    result = new FixResult(false);
                    if (batchMode)
                    {
                        Debug.LogWarning(Maintainer.LogPrefix + "Can't find component for issue:\n" + this);
                    }
                    else
                    {
                        result.SetErrorText("Can't find component\n" + componentName);
                    }

                    return(result);
                }
            }

            result = IssuesFixer.FixObjectIssue(this, obj, component, Kind);

            if (!batchMode && Location == RecordLocation.Scene && openSceneResult != null)
            {
                CSSceneTools.SaveScene(openSceneResult.scene);
                CSSceneTools.CloseOpenedSceneIfNeeded(openSceneResult);
            }

            return(result);
        }