12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- Component({
- // behaviors: [require('../common/share-behavior').default],
- properties: {
- a: Number,
- },
- data: {
- loaded: false,
- arReady: false,
- isPlay: false
- },
- lifetimes: {
- async attached() {
- console.log('data', this.data)
- }
- },
- methods: {
- handleReady({
- detail
- }) {
- const xrScene = this.scene = detail.value;
- this.mat = new(wx.getXrFrameSystem().Matrix4)();
- console.log('xr-scene', xrScene)
- this.triggerEvent('ready')
- },
- handleAssetsProgress: function ({
- detail
- }) {
- // console.log('assets progress', detail.value.progress);
- const progress =
- Math.floor(detail.value.progress * 100)
- this.triggerEvent('progress', progress)
- },
- handleAssetsLoaded: function ({
- detail
- }) {
- console.log('assets loaded', detail.value);
- const el = detail.value.target;
- // this.setData({loaded: true});
- this.scene.event.addOnce('touchstart', this.placeNode.bind(this));
- this.triggerEvent('loaded')
- },
- handleARReady: function ({
- detail
- }) {
- console.log('arReady', this.scene.ar.arVersion);
- },
- placeNode(event) {
- const {
- clientX,
- clientY
- } = event.touches[0];
- const {
- frameWidth: width,
- frameHeight: height
- } = this.scene;
- if (clientY / height > 0.8 && clientX / width < 0.2) {
- this.scene.getNodeById('setitem').visible = false;
- this.scene.ar.resetPlane();
- } else {
- this.scene.ar.placeHere('setitem', true);
- console.error('show-gltf')
- if (!this.isPlay) {
- this.setData({
- isPlay: true
- })
- }
- }
- this.scene.event.addOnce('touchstart', this.placeNode.bind(this));
- },
- handleGLTFLoaded({
- detail
- }) {
- const el = detail.value.target;
- // console.error('handleGLTFLoaded')
- // const gltf = el.getComponent("gltf");
- // const video = this.scene.assets.getAsset("video-texture", "cat");
- // const newMat = this.scene.assets.getAsset("material", "catMat");
- // this.video = video
- // for (const mesh of gltf.getPrimitivesByNodeName("video")) {
- // mesh.material = newMat
- // }
- }
- }
- })
|