Support for Start() method that fires after constructor but before the first Update()#5
Open
ticking-clock wants to merge 1 commit intobanderous:masterfrom
Open
Conversation
Owner
There was a problem hiding this comment.
Why is this necessary? All you need to do is direct the Start() method of UnityGameObjectBridge through TestableGameObject, which you've already done.
Contributor
Author
There was a problem hiding this comment.
You're right; not only does this not belong here but results in Start() being called twice in Unity. I was trying to support the Start() method in tests since they don't instantiate UnityGameObjectBridge, but now I think that logic should go in Tests.TestUpdatableManager.
Contributor
Author
|
Fixed per banderous's comment and merged into single commit. |
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.
Adds an optional overridable Start() method on TestableComponent that will be called after the constructor but before the first Update(). Included a test for verification.
The purpose of this is to allow authors to write Component classes that feel more like they inherited from MonoBehaviour. It is also sometimes desirable to guarantee that code executes after Awake() (which in this case is simulated by the constructor).
I'd like to add support for Awake() but can't see a viable way to do it with injection (Awake must be called after all objects are initialized).