Шкала Tweenmax с сеткой ThreeJS - PullRequest
0 голосов
/ 06 января 2019

Попытка включить масштабный перевод в мою сетку [0], используя TweenMax. У меня нет проблем с определенными анимациями, такими как вращение или даже масштабирование, когда я использую 'mesh [0] .set.scale' в качестве первого аргумента. Однако в этой ситуации я получаю из консоли ошибку «Uncaught TypeError: Невозможно назначить только свойство« scale »для объекта« # »» только для чтения.

Я предполагаю, что это связано с сочетанием использования GSAP и ThreeJS, потому что я попробовал один и тот же код в простом javascript, и он работает нормально.

Я попытался включить минимальный код, поэтому, пожалуйста, дайте мне знать, если потребуется больше!

const geometry = new THREE.IcosahedronBufferGeometry( 1, 0 );
materialRed = new THREE.MeshStandardMaterial({
  color: 0xFF0000
});

mesh[0] = new THREE.Mesh( geometry, materialRed );

scene.add(mesh[0]);

TweenMax.to(mesh[0], 1,  
{
  scale: 2,
  ease: Elastic.easeOut,
  yoyo: true,
  repeat: -1,
  yoyoEase: Bounce.easeOut,
  delay: 1,
}
);

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Повтор вызова метода обновлен:

https://greensock.com/docs/TimelineMax/repeat()

   var t = Math.random() * 0.6 + 0.3;

  TweenMax.to( box.scale, t, {
                    x: 1 + Math.random() * 3,
                    y: 1 + Math.random() * 20,
                    z: 1 + Math.random() * 3,
                    ease: Power2.easeInOut
                } ).repeat(-1);

Демо:

https://codepen.io/MAKIO135/pen/vmBzMv?editors=0010

0 голосов
/ 06 января 2019

разобрался с моей проблемой:

TweenMax.to(mesh[0].scale, 1, 
{ x: 1.2,
  y: 1.2,
  z: 1.2,
  yoyo: true,
  repeat: -1,
});

Похоже, что я пытался манипулировать всей сеткой, когда я должен был сосредоточиться на масштабе сетки. Отсюда я могу масштабировать и манипулировать однако.

...