-
-
Notifications
You must be signed in to change notification settings - Fork 36k
Closed
Description
Description
It seems PropertyBinding isn't selecting the right setValue, because Material.needsUpdate only has a setter defined, not a getter, and the check is against undefined.
The solution is probably to use "material" in targetObject, since a getter isn't easily defined without knowing the compiled version:
three.js/src/animation/PropertyBinding.js
Lines 572 to 580 in 3df50b7
| if ( targetObject.needsUpdate !== undefined ) { // material | |
| versioning = this.Versioning.NeedsUpdate; | |
| } else if ( targetObject.matrixWorldNeedsUpdate !== undefined ) { // node transform | |
| versioning = this.Versioning.MatrixWorldNeedsUpdate; | |
| } |
Reproduction steps
See console of live example.
Code
import * as THREE from 'three';
const material = new THREE.MeshBasicMaterial();
const mesh = new THREE.Mesh(undefined, material);
const binding = THREE.PropertyBinding.create(mesh, ".material.color");
binding.bind();
binding.setValue([0.5, 0.5, 0.5], 0);
console.log(material.version);Live example
https://jsfiddle.net/pq1vLgjc/
Screenshots
No response
Version
r169
Device
No response
Browser
No response
OS
No response
Mugen87