Просмотр исходного кода

ReferenceNode: Fix null reference using `getNodeType()` (#29498)

* fix null reference using `getNodeType()`

* add `sprite.center` check
sunag 1 год назад
Родитель
Сommit
8b66cd5983

+ 20 - 1
src/materials/nodes/manager/NodeMaterialObserver.js

@@ -90,6 +90,12 @@ class NodeMaterialObserver {
 				worldMatrix: renderObject.object.matrixWorld.clone()
 			};
 
+			if ( renderObject.object.center ) {
+
+				data.center = renderObject.object.center.clone();
+
+			}
+
 			if ( renderObject.object.morphTargetInfluences ) {
 
 				data.morphTargetInfluences = renderObject.object.morphTargetInfluences.slice();
@@ -160,7 +166,6 @@ class NodeMaterialObserver {
 
 		return data;
 
-
 	}
 
 	equals( renderObject ) {
@@ -239,6 +244,20 @@ class NodeMaterialObserver {
 
 		}
 
+		// center
+
+		if ( renderObjectData.center ) {
+
+			if ( renderObjectData.center.equals( object.center ) === false ) {
+
+				renderObjectData.center.copy( object.center );
+
+				return true;
+
+			}
+
+		}
+
 		// bundle
 
 		if ( renderObject.bundle !== null ) {

+ 1 - 0
src/nodes/accessors/ReferenceBaseNode.js

@@ -98,6 +98,7 @@ class ReferenceBaseNode extends Node {
 
 		if ( this.node === null ) {
 
+			this.updateReference( builder );
 			this.updateValue();
 
 		}

+ 1 - 0
src/nodes/accessors/ReferenceNode.js

@@ -136,6 +136,7 @@ class ReferenceNode extends Node {
 
 		if ( this.node === null ) {
 
+			this.updateReference( builder );
 			this.updateValue();
 
 		}

粤ICP备19079148号