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); }
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); }