Protobuf改subset模式缺少dll问题

2024-02-11 17:32

本文主要是介绍Protobuf改subset模式缺少dll问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

protobuf是google 的一种数据交换的格式,它独立于语言,独立于平台。

游戏中用于客户端与服务端的数据交互以及简单的数据存储都很方便。

prototbuf的导入,去github下载最新的版本。然后有两种方案,一种是直接将源码放入工程,一种是编译成dll再放入工程。

关于第二种,网上有说法是用dll的方式在Android平台下没问题,但是在IOS平台下会有问题,用不了。

那就用第一种,第一种,直接导入源码,此时会报错,常见的解决方案是加unsafe描述文件,改.Net 2.0 subset,重启unity即可。

运行正常,一切解决。

导个apk,报错了。

缺少System.Data 的dll文件,这个dll的引用在excel的那里,是关于转换策划数据的(Excel解析参看上篇文章)。好多项目是用csv或者xml来存储策划数据的,所以好像没人提到这个问题额。

那就自己解决了,要么不用Excel,要么加入System.Data的引用。想想还是第二种方案吧,加入System.Data的引用。

System.Data的引用在使用.Net 2.0 时是自动包含的,但是protobuf的原因,只能用.Net 2.0 subset,开始的想法是直接找到这个dll引入到项目里来。dll很容易找,就在unity安装目录下(一个题外话,windows上找东西可以用Everything这个软件,很强大,在这里就可以直接搜System.Data.dll能发现unity安装目录下有这个文件),引入工程根目录,再次打包,不行。难道是目录不对,拖到Plugins下,打包,还是不行。Editor目录,还是不行。

换个思路吧,还是用.Net 2.0 ,不用subset了,但是protobuf的unsafe报错怎么解决呢?FEAT_SAFE
怎么用,就是在playerSetting中scriptDefineSymbols中加入“FEAT_SAFE”就行了。

关于protobuf中FEAT_SAFE的问题,参考consider Unity build without FEAT_SAFE #106。

打包,OK。

这篇关于Protobuf改subset模式缺少dll问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/700392

相关文章

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

SpringBoot如何通过Map实现策略模式

《SpringBoot如何通过Map实现策略模式》策略模式是一种行为设计模式,它允许在运行时选择算法的行为,在Spring框架中,我们可以利用@Resource注解和Map集合来优雅地实现策略模式,这... 目录前言底层机制解析Spring的集合类型自动装配@Resource注解的行为实现原理使用直接使用M

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提