Vue 3d loaderVue 3d loader
指南
  • English
  • 简体中文
GitHub
指南
  • English
  • 简体中文
GitHub
  • 指南

    • 介绍
    • 快速上手
    • 事件
    • API
    • 捐助
  • 样例

    • 加载一个模型
    • 加载多个模型并单独设置模型位置
    • 加载JSON模型
    • 加载Draco压缩模型
    • 设置场景高宽
    • 材质及纹理
    • 背景颜色及透明度
    • 交互控制
    • 旋转模型
    • 事件
    • 灯光
    • 相机位置及旋转
    • 并行加载多模型
    • 标注
    • 播放/停止动画
    • 开启阻尼
    • 加载进度
    • 控制相机垂直/水平旋转
    • 开启坐标轴及网格
    • 设置摄像头向内外的距离
    • 点光源跟随相机移动
    • 克隆相同模型

克隆相同模型

<template>
    <vue3dLoader 
        :filePath="filePath" 
        backgroundColor="#cccccc" 
        :cameraPosition="{x:0, y:0, z:0}" 
        ref="vue3dLoaderRef"
        @load="cloneObj" 
        outputEncoding="sRGB" 
        :scale="{ x: 1, y: 1, z: 1 }" 
        :enableAxesHelper="true"
        :axesHelperSize="20" 
        :enableGridHelper="true" 
    />
</template>
<script setup lang="ts">
import { onMounted, ref } from "vue";
const filePath = '/models/gltf/DamagedHelmet.gltf'
const vue3dLoaderRef = ref();

const cloneObj = () => {
    const { children } = vue3dLoaderRef.value.scene
    if (children) {
        const fileName = filePath.split('/').pop()
        children.forEach((item: any) => {
            // same fileName obj
            if (item.fileName === fileName) {
                const cloneItem = item.clone()
                // Set new obj fileName
                cloneItem.fileName = 'clone_' + fileName
                // Set new obj position
                cloneItem.position.set(5, 0, 0)
                // add new obj to scene
                vue3dLoaderRef.value.scene.add(cloneItem)
            }
        })
    }
}
</script>
在 GitHub 上编辑此页
上次更新: 2024/4/12 11:28
Contributors: king2088
Prev
点光源跟随相机移动