Fixed issue where light fails to set already loaded target #2715
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.
Description:
By switching out models and lights dynamically in a scene, I have exposed an issue in the light component where a null reference exception occurs when creating a new spot or directional light where the target is already loaded.
setLight
callsgetLight
which callsonSetTarget
.onSetTarget
expectsthis.light
to be present, which works as long as the target is not loaded, since an event listener is set up ingetLight
, givingthis.light
time to get set insetLight
. When the target is not loaded, however,onSetTarget
is called immediately andthis.light
is undefined.Changes proposed:
onSetTarget
with the new light to set the target on, instead of relying onthis.light
Continue to also set target onthis.light
if present (this was necessary to get all tests passing, not sure why)