将 A 帧与 Three.js 相结合
Combining A-frame with Three.js
我想知道...
是否可以将 Three.js 个元素添加到 A 帧场景中?
假设 A 帧建立在 Three.js 和
之上
three Version: ^0.74.0
登录到您的控制台应该不是什么奇怪的事情吧?
我在我的 A 帧场景元素上尝试了这段代码:
let scene = document.getElementsByTagName('a-scene');
console.log(scene);
var sphereMaterial = new THREE.MeshLambertMaterial( { } );
var sphere = new THREE.Mesh( new THREE.SphereGeometry( 15, 10, 10 ), sphereMaterial );
sphere.position.set(150, 20, -170);
scene.add( sphere );
但是它不起作用,因为场景对象没有添加功能..可能是因为A帧场景不是普通WebGLRenderer的实例?
有人有这方面的经验吗?这将是非常棒的!
A-Frame 建立在 three.js 之上并公开所有底层功能。
<a-scene>
.object3D 使您可以访问 THREE.Scene
.
每个 <a-entity>
都有一个 object3D
是一个组。您使用 getObject3D(name)
和 getOrCreateObject3D(name, constructor
向组中添加内容。
要在 A-Frame 框架内添加 three.js 元素,请使用 A-Frame 提供的实体组件系统。
AFRAME.registerComponent('mythreejsthing', {
schema: {
// ... Define schema to pass properties from DOM to this component
},
init: function () {
var el = this.el; // Entity.
var mythreejsobject = // ... Create three.js object.
el.setObject3D('mesh', mythreejsobject);
}
});
https://aframe.io/docs/0.2.0/core/entity.html#object3d
https://aframe.io/docs/0.2.0/core/component.html
我想知道...
是否可以将 Three.js 个元素添加到 A 帧场景中? 假设 A 帧建立在 Three.js 和
之上three Version: ^0.74.0
登录到您的控制台应该不是什么奇怪的事情吧?
我在我的 A 帧场景元素上尝试了这段代码:
let scene = document.getElementsByTagName('a-scene');
console.log(scene);
var sphereMaterial = new THREE.MeshLambertMaterial( { } );
var sphere = new THREE.Mesh( new THREE.SphereGeometry( 15, 10, 10 ), sphereMaterial );
sphere.position.set(150, 20, -170);
scene.add( sphere );
但是它不起作用,因为场景对象没有添加功能..可能是因为A帧场景不是普通WebGLRenderer的实例?
有人有这方面的经验吗?这将是非常棒的!
A-Frame 建立在 three.js 之上并公开所有底层功能。
<a-scene>
.object3D 使您可以访问 THREE.Scene
.
每个 <a-entity>
都有一个 object3D
是一个组。您使用 getObject3D(name)
和 getOrCreateObject3D(name, constructor
向组中添加内容。
要在 A-Frame 框架内添加 three.js 元素,请使用 A-Frame 提供的实体组件系统。
AFRAME.registerComponent('mythreejsthing', {
schema: {
// ... Define schema to pass properties from DOM to this component
},
init: function () {
var el = this.el; // Entity.
var mythreejsobject = // ... Create three.js object.
el.setObject3D('mesh', mythreejsobject);
}
});
https://aframe.io/docs/0.2.0/core/entity.html#object3d https://aframe.io/docs/0.2.0/core/component.html