1. setComponentsMaterialByKey

根据构件key修改构件材质。

1.1. 参数说明:

名称 说明 类型 是否必填 示例
key 构件key string或string[] "m123_123"
materials THREEJS材质数组 THREE.Material或THREE.Material[] [new THREE.Material()]
isMaterialsSingleton 材质是否为单例,单例为true boolean true
orders 构件材质修改映射表 object [{"compMatOrder":0,"replMatOrder":0}]
返回值说明 类型 示例
返回构件key和材质对象的映射 objec {"m123_123":{}}

1.2. 调用方式:

/**
     * 根据指定的构件key,修改构件材质
     * 方法说明:此方法用于扩展构件材质,允许用户通过THREEJS材质对象,替换构件原始材质对象。
     * @setMaterialComponentsByKey
     * @param {array/string} key 构件key数组或构件key
     * @param {THREE.Material/THREE.Material[]}  materials  用户自定义的材质
     * @param {boolean}  isMaterialsSingleton  标记材质是否为单例
     *      true    :材质为单例模式
     *          说明:会用用户提供参数材质对象替换所有指定构件key参数
     *          应用场景:1:只以显示为主替换构件材质,不做材质位置移动等动画效果
     *                  2:只做相同材质相同偏移效果动画,如设置多根水管构件以相同速度相同方向做材质偏移时
     *          注意事项:当用户使用相同材质对象,以单例模式替换材质的时候,无论用户调用几次该方法,所有构件
     *                  使用的都是相同材质对象,都是用户的材质参数对象
     *      false   :材质为多例模式
     *          说明:会为所有构件提供相同材质副本,用户可以在返回的参数对象中拿到这些材质对象
     *          应用场景:1:当需要为不同构件设置不同材质偏移或者动画时使用,如当需要为不同水管设置相同材质,
     *                  但是材质移动的方向和速度不同时,使用该模式
     *          注意事项:1:在该模式下,当用户创建的材质包含纹理的情况下,用户必须保证纹理以加载完成,否则效果不可预期
     *                  2:当用户把构件材质都指向材质数组中同一个材质时,在本构件下,构件所有材质对象为同一个对象
     *                  3:用户以相同材质对象创建材质数组时,替换后,构件材质依旧时多例模式
     * @param [object[]] orders 构件材质修改映射表
     *      object:{
     *          "compMatOrder":number, 需要修改构件材质的序号
     *          "replMatOrder":number  对应材质数组中的序号
     *         }
     *      此参数为可选参数,如果用户未设置该参数,默认会按照构件材质顺序依次替换用户自定义材质数组中的顺序
     * @return {object}
     */   
 let object=viewer3D.setComponentsMaterialByKey();

1.3. Demo示例:

示例名称 示例地址
修改构件材质 去体验
添加平面贴图 去体验
版权所有@盈嘉互联(北京)科技有限公司 京ICP备15051988号-9 Copyright © 2021 all right reserved,powered by Gitbook该文件修订时间: 2021-12-20 09:59:48

results matching ""

    No results matching ""