当前位置: 首页 > news >正文

Unity性能优化---动态网格组合(二)

在上一篇中,组合的是同一个材质球的网格,如果其中有不一样的材质球会发生什么?如下图:

将场景中的一个物体替换为不同的材质球

运行之后,就变成了相同的材质。

 要实现组合不同材质的网格步骤如下:

 在父物体上添加不同的材质球,

然后在组合时,先将相同材质的物体组合,再将不同材质的物体组合,但是组合为一个mesh后,因为是两个材质球,会调用绘制两次。

 

 

代码如下

public class MeshCombine2 : MonoBehaviour
{public GameObject[] obj1;public GameObject[] obj2;public void Start(){this.MeshCombine();}void MeshCombine(){MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>();List<CombineInstance> combine1 = new List<CombineInstance>(obj1.Length);List<CombineInstance> combine2 = new List<CombineInstance>(obj2.Length);for (int j = 0; j < meshFilters.Length; j++){MeshFilter meshFilter = meshFilters[j];CombineInstance l_combine = new CombineInstance();MeshRenderer meshRender = meshFilter.GetComponent<MeshRenderer>();string materialName = meshRender.material.name.Replace(" (Instance)", "");if (materialName == "Grass"){l_combine.mesh = meshFilter.mesh;l_combine.transform = meshFilter.transform.localToWorldMatrix;combine2.Add(l_combine);}else{l_combine.mesh = meshFilter.mesh;l_combine.transform = meshFilter.transform.localToWorldMatrix;combine1.Add(l_combine);}meshFilter.gameObject.SetActive(false);}Mesh obj1Mesh = new Mesh();obj1Mesh.CombineMeshes(combine1.ToArray());Mesh obj2Mesh = new Mesh();obj2Mesh.CombineMeshes(combine2.ToArray());CombineInstance[] combine = new CombineInstance[2];combine[0].mesh = obj1Mesh;combine[0].transform = this.transform.localToWorldMatrix;combine[1].mesh = obj2Mesh;combine[1].transform = this.transform.localToWorldMatrix;Mesh mesh = new Mesh();mesh.CombineMeshes(combine,false);transform.GetComponent<MeshFilter>().sharedMesh = mesh;transform.gameObject.SetActive(true);}
}

参考链接:

Unity 与 C# 中的动态网格组合 - 组合不同颜色的网格 |哈布拉多 (habrador.com)

相关文章:

Unity性能优化---动态网格组合(二)

在上一篇中&#xff0c;组合的是同一个材质球的网格&#xff0c;如果其中有不一样的材质球会发生什么&#xff1f;如下图&#xff1a; 将场景中的一个物体替换为不同的材质球 运行之后&#xff0c;就变成了相同的材质。 要实现组合不同材质的网格步骤如下&#xff1a; 在父物体…...

JVM学习《垃圾回收算法和垃圾回收器》

目录 1.垃圾回收算法 1.1 标记-清除算法 1.2 复制算法 1.3 标记-整理算法 1.4 分代收集算法 2.垃圾回收器 2.1 熟悉一下垃圾回收的一些名词 2.2 垃圾回收器有哪些&#xff1f; 2.3 Serial收集器 2.4 Parallel Scavenge收集器 2.5 ParNew收集器 2.6 CMS收集器 1.垃圾…...

GPS模块/SATES-ST91Z8LR:电路搭建;直接用电脑的USB转串口进行通讯;模组上报定位数据转换地图识别的坐标手动查询地图位置

从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原…...

什么是TCP的三次握手

TCP&#xff08;传输控制协议&#xff09;的三次握手是一个用于在两个网络通信的计算机之间建立连接的过程。这个过程确保了双方都有能力接收和发送数据&#xff0c;并且初始化双方的序列号。以下是三次握手的详细步骤&#xff1a; 第一次握手&#xff08;SYN&#xff09;&…...

《Clustering Propagation for Universal Medical Image Segmentation》CVPR2024

摘要 这篇论文介绍了S2VNet&#xff0c;这是一个用于医学图像分割的通用框架&#xff0c;它通过切片到体积的传播&#xff08;Slice-to-Volume propagation&#xff09;来统一自动&#xff08;AMIS&#xff09;和交互式&#xff08;IMIS&#xff09;医学图像分割任务。S2VNet利…...

Linux ifconfig ip 命令详解

简介 ifconfig 和 ip 命令用于配置和显示 Linux 上的网络接口。虽然 ifconfig 是传统工具&#xff0c;但现在已被弃用并被提供更多功能的 ip 命令取代。 ifconfig 安装 sudo apt install net-toolssudo yum install net-tools查看所有活动的网络接口 ifconfig启动/激活网络…...

Vue3 对于echarts使用 v-show,导致显示不全,宽度仅100px,无法重新渲染的问题

参考链接&#xff1a;解决Echarts图表使用v-show,显示不全,宽度仅100px的问题_echarts v-show图表不全-CSDN博客 Vue3 echarts v-show无法重新渲染的问题_v-show echarts不渲染-CSDN博客 原因不多赘述了&#xff0c;大概就是v-show 本身是结构已经存在&#xff0c;当数据发生…...

C++实现俄罗斯方块

俄罗斯方块 还记得俄罗斯方块吗&#xff1f;相信这是小时候我们每个人都喜欢玩的一个小游戏。顾名思义&#xff0c;俄罗斯方块自然是俄罗斯人发明的。这人叫阿列克谢帕基特诺夫。他设置这个游戏的规则是&#xff1a;由小方块组成的不同形状的板块陆续从屏幕上方落下来&#xf…...

鸿蒙分享:添加模块,修改app名称图标

新建公共模块common 在entry的oh-package.json5添加dependencies&#xff0c;引入common模块 "dependencies": {"common": "file:../common" } 修改app名称&#xff1a; common--src--resources--string.json 新增&#xff1a; {"name&q…...

扫描IP段内的使用的IP

扫描IP段内的使用的IP 方法一&#xff1a;命令行 命令行进入 for /L %i IN (1,1,254) DO ping -w 1 -n 1 192.168.3.%iarp -a方法二&#xff1a;python from scapy.all import ARP, Ether, srp import keyboarddef scan_network(ip_range):# 创建一个ARP请求包arp ARP(pds…...

【专题】虚拟存储器

前文提到的存储器管理方式有一个共同的特点&#xff0c;即它们都要求将一个作业全部装入内存后方能运行。 但有两种特殊情况&#xff1a; 有的作业很大&#xff0c;其所要求的内存空间超过了内存总容量&#xff0c;作业不能全部被装入内存&#xff0c;致使该作业无法运行&#…...

Python之爬虫入门--示例(2)

一、Requests库安装 可以使用命令提示符指令直接安装requests库使用 pip install requests 二、爬取JSON数据 &#xff08;1&#xff09;、点击网络 &#xff08;2&#xff09;、刷新网页 &#xff08;3&#xff09;、这里有一些数据类型&#xff0c;选择全部 &#xff08…...

5G CPE终端功能及性能评测(四)

5G CPE 功能性能评测 本文选取了几款在工业应用领域应用较多的5G CPE,对其功能和性能进行了对比评测。功能方面主要对比了网络接口数量,VPN功能 支持情况。以下测试为空口测试,测试结果受环境影响较大,性能仅供参考。总体看,高通X55芯片下行最优,速率稳定。 功能 对比CPE…...

人工智能驱动的骗局会模仿熟悉的声音

由于人工智能技术的进步&#xff0c;各种现代骗局变得越来越复杂。 这些骗局现在包括人工智能驱动的网络钓鱼技术&#xff0c;即使用人工智能模仿家人或朋友的声音和视频。 诈骗者使用来自社交媒体的内容来制作深度伪造内容&#xff0c;要求提供金钱或个人信息。个人应该通过…...

电子病历静态数据脱敏路径探索

一、引言 数据脱敏&#xff08;Data Masking&#xff09;&#xff0c;屏蔽敏感数据&#xff0c;对某些敏感信息&#xff08;比如patient_name、ip_no、ad、no、icd11、drug等等 &#xff09;通过脱敏规则进行数据的变形&#xff0c;实现隐私数据的可靠保护。电子病历作为医疗领…...

混合云策略在安全领域受到青睐

Genetec 发布了《2025 年物理安全状况报告》&#xff0c;该报告根据超过 5,600 名该领域领导者&#xff08;其中包括 100 多名来自澳大利亚和新西兰的领导者&#xff09;的回应&#xff0c;揭示了物理安全运营的趋势。 报告发现&#xff0c;澳大利亚和新西兰的组织采用混合云策…...

Echarts使用平面方法绘制三维立体柱状图表

目录 一、准备工作 1.下载引入ECharts库 2.创建容器 二、绘制基本柱状 三、绘制立体柱状方法一 1.定义立方体形状 2.注册立方体形状 3.配置custom系列 4.设置数据 5.渲染图表 四、绘制立体柱状方法二 1.画前知识 2.计算坐标renderItem 函数 &#xff08;1&#x…...

java-判断语句

题目一&#xff1a;选择练习1 657. 选择练习1 - AcWing题库 代码 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int a sc.nextInt(), b sc.nextInt();int c sc.nextInt(), d sc.nextInt();…...

11.14【JAVA EXP3】【DEBUG】

比较疑惑的一点是当前页面&#xff08;资源的url)与请求的url? 请求的url由webService接收&#xff0c;servelt当中也可以发送出这个url 进行页面跳转&#xff0c;是跳转到某个Jsp页面&#xff0c;这个页面的url是在哪里定义的&#xff1f; 在Jsp打印信息&#xff0c;这个报…...

UE5 和 UE4 中常用的控制台命令总结

调用控制台 按下键盘上的 ~ 键可以调用控制台命令。 技巧 使用键盘的 ↑ 键可以查看之前输入过的指令。控制台指令并不需要打全名&#xff0c;输入空格后跟随指令的部分字符可以进行模糊搜索。按下 Ctrl Shift , 打开 GPUProfile 面板。 命令如下&#xff1a; 调试类 s…...

Honey Select 2终极增强补丁:100+插件一键安装完整指南

Honey Select 2终极增强补丁&#xff1a;100插件一键安装完整指南 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为《Honey Select 2》的语言障碍和功能限…...

树莓派CM4刀片服务器设计:从电源管理到集群部署全解析

1. 项目概述&#xff1a;当树莓派计算模块遇上“刀片式”设计如果你和我一样&#xff0c;是个树莓派的老玩家&#xff0c;从最初的Model B一路玩到最新的5代&#xff0c;那你肯定对树莓派计算模块&#xff08;Compute Module&#xff0c;简称CM&#xff09;又爱又恨。爱的是它把…...

PentAGI:面向红队实战的开源渗透测试Agent系统

1. 这不是另一个“AI安全”的概念玩具&#xff0c;而是一套能真正进红队实战的渗透测试Agent系统你有没有遇到过这样的场景&#xff1a;在一次内部红队演练中&#xff0c;刚摸到一台边缘业务服务器&#xff0c;想快速判断它是否暴露了Jenkins未授权访问、Confluence远程代码执行…...

新手避坑指南:用DFS软件读取安卓手机MEID和串码,手把手教你识别端口与驱动(附高低版本对比)

安卓设备底层参数读取实战&#xff1a;从端口识别到安全操作的完整指南 当第一次打开DFS这类专业工具时&#xff0c;许多安卓设备爱好者都会被满屏的专业术语和复杂界面吓退。901D、COM3、QC Diag…这些看似简单的端口名称背后&#xff0c;隐藏着芯片组、系统版本和驱动兼容性的…...

网易云音乐FLAC无损下载工具:3步轻松获取专业级音质

网易云音乐FLAC无损下载工具&#xff1a;3步轻松获取专业级音质 【免费下载链接】NeteaseCloudMusicFlac 根据网易云音乐的歌单, 下载flac无损音乐到本地.。 项目地址: https://gitcode.com/gh_mirrors/nete/NeteaseCloudMusicFlac 还在为在线音乐平台的音质限制而烦恼吗…...

Windows Defender终极控制:开源工具defender-control完全指南

Windows Defender终极控制&#xff1a;开源工具defender-control完全指南 【免费下载链接】defender-control An open-source windows defender manager. Now you can disable windows defender permanently. 项目地址: https://gitcode.com/gh_mirrors/de/defender-control…...

抖音批量下载神器:开源工具完整使用指南

抖音批量下载神器&#xff1a;开源工具完整使用指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下…...

Python 实现电脑垃圾自动清理工具(附完整源码)

最近很多朋友都在问&#xff1a;为什么电脑明明配置不差&#xff0c; 但用久了还是越来越卡&#xff1f;其实很多时候&#xff0c;并不是硬件问题。而是&#xff1a;临时文件过多缓存堆积回收站没清理系统垃圾越来越多于是我用 Python 写了一个&#xff1a;“电脑垃圾自动清理工…...

千川素材外包月烧3万,转易元AI自产省70%成本,跑量还更猛——真实账单对比

很多商家做千川投放时&#xff0c;最开始以为最贵的是投流预算&#xff0c;后来才发现&#xff0c;真正长期烧钱的其实是素材。计划每天要新视频&#xff0c;爆款跑起来要裂变&#xff0c;素材疲劳了要补货&#xff0c;全域推广还要不同场景、不同卖点、不同人群的素材矩阵。外…...

CANN/asc-devkit log1pf函数文档

log1pf 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gitcode.com/can…...