Skip to content

Commit 39889cd

Browse files
committed
spritemanagers array is optional
1 parent d521fd0 commit 39889cd

File tree

3 files changed

+17
-10
lines changed

3 files changed

+17
-10
lines changed

packages/dev/core/src/Rendering/renderingManager.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,10 @@ export class RenderingManager {
113113
}
114114
}
115115

116-
for (const spriteManager of this._scene.spriteManagers) {
117-
spriteManager._wasDispatched = false;
116+
if (this._scene.spriteManagers) {
117+
for (const spriteManager of this._scene.spriteManagers) {
118+
spriteManager._wasDispatched = false;
119+
}
118120
}
119121

120122
for (const particleSystem of this._scene.particleSystems) {

packages/dev/core/src/Sprites/spriteManager.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ export class SpriteManager implements ISpriteManager {
294294
return;
295295
}
296296

297-
this._scene.spriteManagers.push(this);
297+
this._scene.spriteManagers && this._scene.spriteManagers.push(this);
298298
this.uniqueId = this.scene.getUniqueId();
299299

300300
if (imgUrl) {
@@ -628,8 +628,10 @@ export class SpriteManager implements ISpriteManager {
628628
this._textureContent = null;
629629

630630
// Remove from scene
631-
const index = this._scene.spriteManagers.indexOf(this);
632-
this._scene.spriteManagers.splice(index, 1);
631+
if (this._scene.spriteManagers) {
632+
const index = this._scene.spriteManagers.indexOf(this);
633+
this._scene.spriteManagers.splice(index, 1);
634+
}
633635

634636
// Callback
635637
this.onDisposeObservable.notifyObservers(this);

packages/dev/core/src/Sprites/spriteSceneComponent.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ declare module "../scene" {
2727
* All of the sprite managers added to this scene
2828
* @see https://doc.babylonjs.com/features/featuresDeepDive/sprites
2929
*/
30-
spriteManagers: Array<ISpriteManager>;
30+
spriteManagers?: Array<ISpriteManager>;
3131

3232
/**
3333
* An event triggered when sprites rendering is about to start
@@ -111,7 +111,7 @@ Scene.prototype._internalPickSprites = function (ray: Ray, predicate?: (sprite:
111111
camera = this.activeCamera;
112112
}
113113

114-
if (this.spriteManagers.length > 0) {
114+
if (this.spriteManagers && this.spriteManagers.length > 0) {
115115
for (let spriteIndex = 0; spriteIndex < this.spriteManagers.length; spriteIndex++) {
116116
const spriteManager = this.spriteManagers[spriteIndex];
117117

@@ -153,7 +153,7 @@ Scene.prototype._internalMultiPickSprites = function (ray: Ray, predicate?: (spr
153153
camera = this.activeCamera;
154154
}
155155

156-
if (this.spriteManagers.length > 0) {
156+
if (this.spriteManagers && this.spriteManagers.length > 0) {
157157
for (let spriteIndex = 0; spriteIndex < this.spriteManagers.length; spriteIndex++) {
158158
const spriteManager = this.spriteManagers[spriteIndex];
159159

@@ -312,6 +312,9 @@ export class SpriteSceneComponent implements ISceneComponent {
312312
this.scene.onAfterSpritesRenderingObservable.clear();
313313

314314
const spriteManagers = this.scene.spriteManagers;
315+
if (!spriteManagers) {
316+
return;
317+
}
315318
while (spriteManagers.length) {
316319
spriteManagers[0].dispose();
317320
}
@@ -358,7 +361,7 @@ export class SpriteSceneComponent implements ISceneComponent {
358361
private _pointerDown(unTranslatedPointerX: number, unTranslatedPointerY: number, pickResult: Nullable<PickingInfo>, evt: IPointerEvent): Nullable<PickingInfo> {
359362
const scene = this.scene;
360363
scene._pickedDownSprite = null;
361-
if (scene.spriteManagers.length > 0) {
364+
if (scene.spriteManagers && scene.spriteManagers.length > 0) {
362365
pickResult = scene.pickSprite(unTranslatedPointerX, unTranslatedPointerY, this._spritePredicate, false, scene.cameraToUseForPointers || undefined);
363366

364367
if (pickResult && pickResult.hit && pickResult.pickedSprite) {
@@ -405,7 +408,7 @@ export class SpriteSceneComponent implements ISceneComponent {
405408
doubleClick: boolean
406409
): Nullable<PickingInfo> {
407410
const scene = this.scene;
408-
if (scene.spriteManagers.length > 0) {
411+
if (scene.spriteManagers && scene.spriteManagers.length > 0) {
409412
const spritePickResult = scene.pickSprite(unTranslatedPointerX, unTranslatedPointerY, this._spritePredicate, false, scene.cameraToUseForPointers || undefined);
410413

411414
if (spritePickResult) {

0 commit comments

Comments
 (0)