VINS-FUSION 在Opencv4下编译报错,且ceres也报错

 Opencv报错

/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc:20:38: error: ‘CV_GRAY2BGR’ was not declared in this scope
   20 |         cv::cvtColor(image, mSketch, CV_GRAY2BGR);
      |                                      ^~~~~~~~~~~
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc:26:37: error: ‘CV_BGR2GRAY’ was not declared in this scope
   26 |         cv::cvtColor(image, mImage, CV_BGR2GRAY);
      |                                     ^~~~~~~~~~~
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc: In member function ‘void camodocal::Chessboard::findCorners(bool)’:
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc:34:43: error: ‘CV_CALIB_CB_ADAPTIVE_THRESH’ was not declared in this scope
   34 |                                           CV_CALIB_CB_ADAPTIVE_THRESH +
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc:35:43: error: ‘CV_CALIB_CB_NORMALIZE_IMAGE’ was not declared in this scope
   35 |                                           CV_CALIB_CB_NORMALIZE_IMAGE +
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc:36:43: error: ‘CV_CALIB_CB_FILTER_QUADS’ was not declared in this scope
   36 |                                           CV_CALIB_CB_FILTER_QUADS +
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc: In constructor ‘camodocal::Chessboard::Chessboard(cv::Size, cv::Mat&)’:
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc:20:38: error: ‘CV_GRAY2BGR’ was not declared in this scope
   20 |         cv::cvtColor(image, mSketch, CV_GRAY2BGR);
      |                                      ^~~~~~~~~~~
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc:37:43: error: ‘CV_CALIB_CB_FAST_CHECK’ was not declared in this scope
   37 |                                           CV_CALIB_CB_FAST_CHECK,
      |                                           ^~~~~~~~~~~~~~~~~~~~~~
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc:26:37: error: ‘CV_BGR2GRAY’ was not declared in this scope
   26 |         cv::cvtColor(image, mImage, CV_BGR2GRAY);
      |                                     ^~~~~~~~~~~
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc: In member function ‘bool camodocal::Chessboard::findChessboardCornersImproved(const cv::Mat&, const Size&, std::vector<cv::Point_<float> >&, int)’:
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc:144:43: error: ‘CV_CALIB_CB_NORMALIZE_IMAGE’ was not declared in this scope
  144 |     if (image.channels() != 1 || (flags & CV_CALIB_CB_NORMALIZE_IMAGE))
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc: In member function ‘void camodocal::Chessboard::findCorners(bool)’:
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc:34:43: error: ‘CV_CALIB_CB_ADAPTIVE_THRESH’ was not declared in this scope
   34 |                                           CV_CALIB_CB_ADAPTIVE_THRESH +
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/monica/Documents/code/vins-fusion-old-ws/src/VINS-Fusion-master/camera_models/src/chessboard/Chessboard.cc:150:43: error: ‘CV_BGR2GRAY’ was not declared in this scope

这种一般都是OpenCV3->Opencv4迁移的时候,做了很好修改,具体可以参考链接

opencv常见用法和opencv3->opencv4版本切换

Ceres报错

如下所示:

/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:64:21: error: ‘integer_sequence’ is not a member of ‘std’
   64 | struct SumImpl<std::integer_sequence<T, N, Ns...>> {
      |                     ^~~~~~~~~~~~~~~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:64:21: error: ‘integer_sequence’ is not a member of ‘std’
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:64:46: error: wrong number of template arguments (3, should be 1)
   64 | struct SumImpl<std::integer_sequence<T, N, Ns...>> {
      |                                              ^~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:60:8: note: provided for ‘template<class Seq> struct ceres::internal::SumImpl’
   60 | struct SumImpl;
      |        ^~~~~~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:64:49: error: expected unqualified-id before ‘>’ token
   64 | struct SumImpl<std::integer_sequence<T, N, Ns...>> {
      |                                                 ^~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:71:21: error: ‘integer_sequence’ is not a member of ‘std’
   71 | struct SumImpl<std::integer_sequence<T, N1, N2, Ns...>> {
      |                     ^~~~~~~~~~~~~~~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:71:21: error: ‘integer_sequence’ is not a member of ‘std’
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:71:51: error: wrong number of template arguments (4, should be 1)
   71 | struct SumImpl<std::integer_sequence<T, N1, N2, Ns...>> {
      |                                                   ^~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:60:8: note: provided for ‘template<class Seq> struct ceres::internal::SumImpl’
   60 | struct SumImpl;
      |        ^~~~~~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:71:54: error: expected unqualified-id before ‘>’ token
   71 | struct SumImpl<std::integer_sequence<T, N1, N2, Ns...>> {
      |                                                      ^~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:78:21: error: ‘integer_sequence’ is not a member of ‘std’
   78 | struct SumImpl<std::integer_sequence<T, N1, N2, N3, N4, Ns...>> {
      |                     ^~~~~~~~~~~~~~~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:78:21: error: ‘integer_sequence’ is not a member of ‘std’
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:78:59: error: wrong number of template arguments (6, should be 1)
   78 | struct SumImpl<std::integer_sequence<T, N1, N2, N3, N4, Ns...>> {
      |                                                           ^~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:60:8: note: provided for ‘template<class Seq> struct ceres::internal::SumImpl’
   60 | struct SumImpl;
      |        ^~~~~~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:78:62: error: expected unqualified-id before ‘>’ token
   78 | struct SumImpl<std::integer_sequence<T, N1, N2, N3, N4, Ns...>> {
      |                                                              ^~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:85:21: error: ‘integer_sequence’ is not a member of ‘std’
   85 | struct SumImpl<std::integer_sequence<T, N>> {
      |                     ^~~~~~~~~~~~~~~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:85:21: error: ‘integer_sequence’ is not a member of ‘std’
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:85:41: error: wrong number of template arguments (2, should be 1)
   85 | struct SumImpl<std::integer_sequence<T, N>> {
      |                                         ^
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:60:8: note: provided for ‘template<class Seq> struct ceres::internal::SumImpl’
   60 | struct SumImpl;
      |        ^~~~~~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:85:42: error: expected unqualified-id before ‘>’ token
   85 | struct SumImpl<std::integer_sequence<T, N>> {
      |                                          ^~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:91:21: error: ‘integer_sequence’ is not a member of ‘std’
   91 | struct SumImpl<std::integer_sequence<T>> {
      |                     ^~~~~~~~~~~~~~~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:91:21: error: ‘integer_sequence’ is not a member of ‘std’
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:91:38: error: template argument 1 is invalid
   91 | struct SumImpl<std::integer_sequence<T>> {
      |                                      ^
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:91:39: error: expected unqualified-id before ‘>’ token
   91 | struct SumImpl<std::integer_sequence<T>> {
      |                                       ^~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:135:31: error: ‘integer_sequence’ is not a member of ‘std’
  135 |                          std::integer_sequence<T, N, Ns...>,
      |                               ^~~~~~~~~~~~~~~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:135:31: error: ‘integer_sequence’ is not a member of ‘std’
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:135:59: error: template argument 3 is invalid
  135 |                          std::integer_sequence<T, N, Ns...>,
      |                                                           ^
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:135:59: error: type/value mismatch at argument 4 in template parameter list for ‘template<class T, T Sum, class SeqIn, class SeqOut> struct ceres::internal::ExclusiveScanImpl’
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:135:59: note:   expected a type, got ‘N’
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:146:39: error: ‘integer_sequence’ is not a member of ‘std’
  146 | struct ExclusiveScanImpl<T, Sum, std::integer_sequence<T>, SeqOut> {
      |                                       ^~~~~~~~~~~~~~~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:146:39: error: ‘integer_sequence’ is not a member of ‘std’
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:146:57: error: wrong number of template arguments (3, should be 4)
  146 | struct ExclusiveScanImpl<T, Sum, std::integer_sequence<T>, SeqOut> {
      |                                                         ^
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:130:8: note: provided for ‘template<class T, T Sum, class SeqIn, class SeqOut> struct ceres::internal::ExclusiveScanImpl’
  130 | struct ExclusiveScanImpl;
      |        ^~~~~~~~~~~~~~~~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:160:53: error: ‘integer_sequence’ is not a member of ‘std’
  160 |       typename ExclusiveScanImpl<T, T(0), Seq, std::integer_sequence<T>>::Type;
      |                                                     ^~~~~~~~~~~~~~~~
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:160:53: error: ‘integer_sequence’ is not a member of ‘std’
/home/monica/Documents/code/ws/src/ov2slam-main/Thirdparty/ceres-solver/install/include/ceres/internal/integer_sequence_algorithm.h:160:70: error: template argument 4 is invalid
  160 |       typename ExclusiveScanImpl<T, T(0), Seq, std::integer_sequence<T>>::Type;

一般这个,大家都说是ceres版本的问题,重新切换回更低版本,但是我们总是希望用更高一点的版本去做进一步开发,毕竟新版本可能提高了速度、减少了CPU资源占用、新加了算法、解决了之前的一些bug等等。其实这个问题没那么复杂,只需要把CMakeList中的 set(CMAKE_CXX_FLAGS "-std=c++11")改成set(CMAKE_CXX_FLAGS "-std=c++14")即可

修改后的源码链接

完整可以编译通过的代码,本人已上传,链接如下:

文件下载-奶牛快传 Download |CowTransfer

b7x7fp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/691320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营29期|day55 任务以及具体安排

第九章 动态规划part12 309.最佳买卖股票时机含冷冻期 class Solution {public int maxProfit(int[] prices) {//0代表持股票&#xff0c;1代表保持卖出状态&#xff0c;2代表卖出股票。3代表冷冻int[][] dp new int[prices.length][4];dp[0][0] -prices[0];for(int i 1 ; …

axios封装终极版实现token无感刷新及全局loading

前言 关于axios全局loading的封装博主已经发过一次了&#xff0c;这次是在其基础上增加了token的无感刷新。 token无感刷新流程 首次登录的时候会获取到两个token&#xff08;AccessToken&#xff0c;RefreshToken&#xff09;持久化保存起来&#xff08;localStorage方案&a…

iOS 使用Image I/O 实现超大图片降采样

一个图片解码成未压缩的位图的时候&#xff0c;占用的内存和图片的文件大小没有关系&#xff0c;和图片的尺寸大小有关系&#xff0c;尺寸越大&#xff0c;所需要的像素点越多&#xff0c;所以超大图片&#xff0c;我们需要进行优化处理 这里直接上降采样代码 给UIImage 添加…

Emlog博客网站快速搭建并结合内网穿透实现远程访问本地站点

文章目录 前言1. 网站搭建1.1 Emolog网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总结 前言 博客作为使…

【C++之语法篇003】

C学习笔记---003 C知识开篇1、内联函数1.1、什么是内联函数?1.2、解决外部头文件&#xff0c;重复定义问题1.3、内联函数的总结 2、auto关键字2.1、auto的作用2.2、auto的总结 3、范围for3.1、什么是范围for&#xff1f;3.2、范围for的循环应用 4、指针空值关键字nullptr4.1、…

nginx的底层理解

Nginx是一个高性能的Web服务器&#xff0c;同时也是一个反向代理服务器、负载均衡器和HTTP缓存器。它的底层设计注重效率和性能&#xff0c;能够支持高并发连接数&#xff0c;最大可以支持约50000个并发连接。以下是Nginx的一些关键特性和底层理解&#xff1a; 事件驱动模型&a…

机器人十大前沿技术(2023-2024年)

2023-2024年机器人十大前沿技术 1. 具身智能与垂直大模型 具身智能是指拥有自主感知、交互和行动能力的智能体&#xff0c;能够与环境进行实时互动&#xff0c;从而实现对环境的理解和适应。 “大模型”是指在深度学习和人工智能领域中&#xff0c;使用大量参数和数据进行训…

【PHP】web服务器支持PHP_环境配置

一、PHP运行目前为止主要有4方式 &#xff08;1&#xff09;以模块加载的方式运行&#xff0c;初学者可能不容易理解&#xff0c;其实就是将PHP集成到Apache服务器&#xff0c; 以同一个进程运行。 &#xff08;2&#xff09;以CGI的方式运行&#xff0c;CGI英文叫…

HarmonyOS4.0系列——08、整合UI常用组件

HarmonyOS4.0 系列——08、UI 组件 Blank Blank 组件在横竖屏占满空余空间效果 // xxx.ets Entry Component struct BlankExample {build() {Column() {Row() {Text(Button).fontSize(18)Blank()Toggle({type: ToggleType.Switch}).margin({top: 14,bottom: 14,left: 6,righ…

go-redis 使用 redis 6.0.14 版本错误: consider implementing encoding.BinaryMarshaler

使用方法 err : bp.data.redis.Get(ctx, policyKey).Scan(&result)起初在 redis 5.x.x 版本并没有遇到错误&#xff0c;但是在切换 redis 实例之后就出现了错误&#xff08;他们之间只是版本不同&#xff09;。 修复方法 看错误日志的描述&#xff0c;大概含义就是需要我们…

【Spring Boot 3】【JPA】一对一双向关联

【Spring Boot 3】【JPA】一对一双向关联 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花…

Windows 使设置更改立即生效——并行发送广播消息

目录 前言 1 遍历窗口句柄列表 2 使用 SendMessageTimeout 发送延时消息 3 并行发送消息实现模拟广播消息 4 修改 UIPI 消息过滤器设置 5 托盘图标刷新的处理 6 完整代码和测试 本文属于原创文章&#xff0c;转载请注明出处&#xff1a; https://blog.csdn.net/qq_5907…

effective c++ 笔记 条款18-25

条款18&#xff1a;让接口容易被正确使用&#xff0c;不易误使用 使用外覆类型&#xff08;wrapper&#xff09;提醒调用者传参错误检查&#xff0c;将参数的附加条件限制在类型本身 Data::Data(int month, int day, int year) { ... }三个参数类型相同的函数容易造成误用 Da…

全球首个AI管理体系标准:ISO/IEC 42001《信息技术–人工智能–管理系统》

ISO/IEC 42001《信息技术–人工智能–管理系统》是全球首个针对人工智能&#xff08;AI&#xff09;管理体系的国际标准。该标准旨在帮助组织在开发、实施和维护AI技术时建立有效的管理体系&#xff0c;以确保AI系统的可靠性、安全性和合规性。 ISO/IEC 42001标准涵盖了多个方…

Java学习24--异常

异常 软件运行过程中的各种意料之外叫做Exception&#xff0c;比如要读取的文件找不到&#xff0c;准备联网发现没网&#xff0c;等着int参数来了个String 注意Error和exception不一样&#xff0c;error错的比较猛&#xff0c;一般是直接把JAVA整个搞崩了&#xff0c;比如内存…

洛谷C++简单题小练习day15—计算阶乘小程序(不用循环)

day15--计算阶乘小程序--2.19 习题概述 题目描述 求 n!&#xff0c;也就是 123⋯n。 挑战&#xff1a;尝试不使用循环语句&#xff08;for、while&#xff09;完成这个任务。 输入格式 第一行输入一个正整数 n。 输出格式 输出一个正整数&#xff0c;表示 n! 代码部分 …

瑞芯微RK3588驱动配置之DVP摄像头1

发现很多人不会RK3588DVP摄像头的驱动配置&#xff0c;这里简单分享一下&#xff0c;各位老铁点个赞&#xff0c;一键三连&#xff0c;给点动力。 这篇主要讲一下DTS设备树的配置&#xff0c;下篇写具体的驱动设计。 因为瑞芯微的大部分芯片都支持DVP摄像头&#xff0c;配置都大…

Android内存分析

1.分析某个进程的内存情况 1.1 生成.hprof文件 可以在运行的设备上&#xff0c;使用adb命令生成 .hprof文件&#xff0c;表示在执行命令的那一刻&#xff0c;该进程的内存情况。如下&#xff1a; am dumpheap com.example.demo /data/local/tmp/demo.hprof这里就是对包名为c…

【力扣白嫖日记】1890.2020年最后一次登录

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 1890.2020年最后一次登录 表&#xff1a;Logins 列名类型user_idinttime_stampvarchar (user_id, time_sta…

Unity UGUI的DrawCall优化

Unity UGUI是一种强大的用户界面设计工具&#xff0c;它可以帮助开发者快速创建各种界面元素&#xff0c;从按钮和文本到滑块和面板等。然而&#xff0c;在使用UGUI时&#xff0c;一个常见的性能瓶颈就是DrawCall过多导致的性能下降。在本文中&#xff0c;我们将深入探讨UGUI的…