找回密码
 立即注册

QQ登录

只需一步,快速开始

Felix.Li Wyn认证

超级版主

108

主题

2923

帖子

5531

积分

超级版主

Rank: 8Rank: 8

积分
5531

Wyn高级认证Wyn认证

Felix.Li Wyn认证
超级版主   /  发表于:2024-11-19 14:58  /   查看:157  /  回复:0
本帖最后由 Felix.Li 于 2024-12-2 10:00 编辑

前置小章节-点击跳转


分享一组可以在全局对象下挂的方法显示隐藏方法:
1.显示传入模型,隐藏其他所有模型节点
  1. scene.showModel = (modelName) => {
  2.   scene.meshes.forEach(item => {
  3.     item.isVisible = false;
  4.   });
  5.   const mesh = scene.getMeshByName(modelName) || scene.getNodeByName(modelName);
  6.   if (mesh) {
  7.     mesh.getChildMeshes().forEach((item) => {
  8.       item.isVisible = true;
  9.     });
  10.     mesh.isVisible = true;
  11.   }
  12. }
复制代码

2.隐藏传入模型,显示其他所有模型节点
  1. scene.hiddenModel= (modelName) => {
  2.   scene.meshes.forEach(item => {
  3.     item.isVisible = true;
  4.   });
  5.   const mesh = scene.getMeshByName(modelName) || scene.getNodeByName(modelName);
  6.   if (mesh) {
  7.     mesh.getChildMeshes().forEach((item) => {
  8.       item.isVisible = false;
  9.     });
  10.     mesh.isVisible = false;
  11.   }
  12. }
复制代码

我们在场景加载完成时,注册这两个方法,就可以在其他地方通过快速调用直接实现显示和隐藏
注意,这个隐藏和显示的时候,会把其他所有节点都对应的显示和隐藏,所以如果场景有其他的显示或者隐藏,需要改一下第一步的:
  1. scene.meshes.forEach(item => {
  2.   item.isVisible = false || True;
  3. });
复制代码
需要排除部分,而不是全部显示或者隐藏

系列链接:
【易学技巧】3D模型基本小技巧
【易学技巧】3D模型脚本分享-动态显示/隐藏tooltip
【易学技巧】3D模型脚本分享-相机跟随模型移动
【易学技巧】3D模型脚本分享-动态显示/隐藏指定节点


0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部