-
-
Notifications
You must be signed in to change notification settings - Fork 178
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding Singleton Lifetime Scope #741
Open
IShix-g
wants to merge
7
commits into
hadashiA:master
Choose a base branch
from
IShix-g:singleton-lifetime-scope
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains 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
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
I am creating a custom editor extension to make the feat: Modify singleton lifetime scopes to disable the selection of ParentReference. |
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.
Although VContainer has successfully been kept simple, I believe adding this extension could be beneficial. Therefore, I am submitting this request for your consideration. Thank you for reviewing it.
Reasons for the Addition
This extension proves useful in cases where the Project root LifetimeScope cannot be utilized for some reason.
Advantages
LifetimeScope
that persists throughout the game without being destroyed.Key Features of the Implementation
Two Classes Implemented
SingletonLifetimeScope<T>
: Acts as the parent singletonLifetimeScope
.NestedSingletonLifetimeScope<T>
: Acts as a childLifetimeScope
.SingletonLifetimeScope
Due to the singleton nature of this class, the
Parent
option is always set toNone
and cannot be modified.NestedSingletonLifetimeScope
The
SingletonLifetimeScope
works independently, but if you need to use childLifetimeScopes
, you can implement theNestedSingletonLifetimeScope
. This class allows specifying the parent type during implementation, making it error-proof. It is particularly useful when implementingLifetimeScopes
for each scene.The
Parent
option can only be set to the designated parent type and cannot be modified otherwise.Testing
All generation tests passed successfully.
You can review the tests here:
Assets/Tests/Unity/SingletonLifetimeScopeTest.cs
Fixes to the ParentReferencePropertyDrawer
Both
SingletonLifetimeScope
andNestedSingletonLifetimeScope
areabstract classes
. However, they were still being displayed in the inspector. Since selecting them in the inspector would lead to errors, a fix has been implemented to hide them.