переключение между кадрами и мышью - PullRequest
0 голосов
/ 29 мая 2019

У меня огромные проблемы с тем, чтобы заставить мышь работать после того, как игрок был в VR.

Обновление атрибутов курсора ничего не сделало, поэтому я попытался удалить и заменить их

  getRayCasterAttributes: function(){

    return this.data.isVR ? 
      {
        cursorAttributes:{
          fuse: true,
          fuseTimeout: cursorFuseTimeout,
        },
        raycasterAttributes: {
          objects: '[data-raycastable]',
        },

      } :  
      {cursorAttributes:{
        fuse: true,
        fuseTimeout: cursorFuseTimeout,
        rayOrigin:  'mouse',
      },
      raycasterAttributes: {
        objects: '[data-raycastable]',
      },
      }
  }


 if(oldData.isVR !== this.data.isVR){
      this._recticle.object3D.visible = this.data.isVR
      this._recticle.removeAttribute('raycaster')
      this._recticle.removeAttribute('cursor')
      setTimeout(() => {
        console.log(this.getRayCasterAttributes().raycasterAttributes, this.getRayCasterAttributes().cursorAttributes)
        this._recticle.setAttribute('raycaster', this.getRayCasterAttributes().raycasterAttributes)
        this._recticle.setAttribute('cursor', this.getRayCasterAttributes().cursorAttributes)
      },100)

Этот вид работы переключается с 2D на VR с тайм-аутом, но переключение назад - еще одна серьезная проблема.

Каков наилучший способ сделать это в рамке?

Я пробовал это, не помогает. Работает с мышью, не переключается на управление курсором при вводе VR.

  this._recticle.setAttribute('cursor', {fuse: false, rayOrigin: 'mouse'})
else
  this._recticle.setAttribute('cursor', {fuse: true,rayOrigin: 'entity', fuseTimeout: 2000})

Ответы [ 2 ]

1 голос
/ 29 мая 2019

Противоположность будет rayOrigin: entity.

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

У вас есть отдельный курсор на сцене и в камере, тогда вы можете иметь как

, как разделить событие щелчка мышью и событие щелчка курсора в рамке

https://glitch.com/edit/#!/winter-sagittarius

...