1、引入GLTF加载器
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
2、加载模型
getGltfModel(){
const loader = new GLTFLoader();
loader.load( '模型绝对位置.../model/Unity2GLTF.gltf', function ( gltf ) {
let root = gltf.scene
this.scene.add( root ); //模型加入场景中
root.scale.set(20,20,20) //设置模型大小
root.rotation.y =Math.PI //以世界坐标y轴旋转180°
let childModel = root.getObjectByName('node_chargeBox_-9596');//获取gltf中的子模型(该方法只能返回一个匹配,如果名字有重复多个,不能获取多个)
childModel .visible =false//隐藏gltf中的子模型
});
}
3、获取模型子类的方法
getObjectById()
根据指定的id获取对应的对象,总是返回第一个匹配到的对象(这个方法测试时无效)
getObjectByName()
根据指定的name获取对应的对象,总是返回第一个匹配到的对象
getObjectByProperty()
根据指定的属性(键值对)获取对应的对象,总是返回第一个匹配到的对象
getObjectById
和getObjectByName
的方法内部都是调用了getObjectByProperty
方法