Unity SDK - Initialize in Awake() #1338
Merged
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.
We ran into an issue where
AgonesSdk
was used before it was initialized due to the fact that we keep the game object deactivated (checkbox unticked in editor) only to activate it when running as the game server. Activating the game object (thus activating the AgonesSdk MonoBehaviour) callsAwake()
butStart()
isn't called until "before the nextUpdate()
" which might be up to a frame later.We ended up calling
WatchGameServer(...)
beforesidecarAddress
has been set (inStart()
) so the watch request was sent to "http://localhost/watch/gameserver" instead (since the request was created with only the path component).This PR moves the
sidecarAddress
init toAwake()
so that when the MB has been "awoken" it is ready to be used. I left the health check kick-off inStart()
as it felt more "internal start logic" than "init state", if that makes sense.Feedback appreciated. 🙂