@@ -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