Repository navigation
Support Unity 7000 CoreCLR - #148
Merged
Merged
Conversation
Why CoreCLR may retain assemblies from unloading code contexts in AppDomain.GetAssemblies after code reload. What Changed Use Unity's CurrentAssemblies API on Unity 7000 and newer when discovering generic type candidates. Keep the version-specific implementation behind a dedicated method. Impact Candidates come from Unity's current loaded assemblies on CoreCLR. Earlier Unity versions retain their existing discovery and filtering behavior.
Why The CoreCLR assembly discovery path needs Linux coverage alongside the minimum and current Mono-based Unity versions. What Changed Add Unity 7000.0.0a11 to the existing EditMode matrix. Impact The Verification check now requires the Unity 7000 job as well as the existing 2021.3 and Unity 6 jobs. Release builds keep their existing Editor version.
Why Unity 7000 serializes nested managed type names with slash separators. Direct reflection lookup cannot resolve them, leaving IMGUI labels empty and preventing the type popup from opening. What Changed Retry nested-name resolution using the same slash-to-plus conversion as Unity's ScriptAttributeUtility. Keep the conversion in ManagedReferenceUtility instead of requiring individual callers to normalize names. Impact Both Inspector backends and menu commands share the same type-name interpretation. The 51 affected type-selection, drawer, change-check and menu tests pass on Unity 7000 locally.
Why Investigating a Unity 7000 failure should not repeat unaffected Editor versions or unrelated tests. What Changed Allow workflow dispatches to select an Editor version and test filter. Name the resulting gate Targeted verification so a diagnostic run cannot satisfy the full Verification requirement. Impact Pull requests and main still run the full required matrix. Manual diagnostics can verify the affected runtime and operations independently.
Why Unity 7 applies list-row margins to BaseFields directly under PropertyField. An extra selector wrapper prevented those native rules from reaching the popup, making it too wide. What Changed Make the header itself a native PopupField. Place the existing Foldout prefix in a sibling flow slot so it keeps its own native margins and logical Foldout ownership. Detach and hide both owned elements together. Impact Unity calculates input widths and prefix indentation without measured offsets or layout corrections. The affected Unity 7000 checks for native geometry, resizing, focus, foldout interaction and Prefab revert pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Support Unity 7000 CoreCLR in type discovery and serialized type resolution. Keep selector headers in Unity's native field hierarchy so the Unity 7 list styles apply correctly.
Scope
CurrentAssemblies.GetLoadedAssemblies()on Unity 7000 while preserving earlier Editor versions.7000.0.0a11to Linux EditMode CI. Targeted manual runs use a separate gate; PRs retain the full required matrix.Verification
Full Linux PR CI and required Verification check passed at
701eeaa.The two ignored cases on Unity 6 and 7000 are the existing
Covariance_DoesNotBoxValueTypeArgumentsandContravariance_DoesNotBoxValueTypeArgumentstests for the known value-type variance defect. This PR does not change those ignores or the type-filtering policy.git diff --checkpasses.References