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

Unity protobuf中repeated转C#文件List只读问题

Unity protobuf中repeated转C#文件List只读问题

  • 介绍
  • 问题
  • 解决方案
  • 总结

介绍

工具这里我就不多介绍了,如果有用到ProtoGen工具的可以继续看一下我后面的方法。

问题

如下图所示,我这里随便用了一个.proto文件,看下我这里面的repeated标记的字段,然后在对比我下面对应的C#文件发现是只读的不能赋值。
在这里插入图片描述
对应的C#文件如下图所示
在这里插入图片描述
对比了一下发现这个repeated标记的数组生成的C#文件对应的字段是只读的,没有Set属性,那么出现这种情况的原因只能是因为生成的文件强制生成的是只读属性而不是可读可写的属性。

解决方案

顺着先找到我们刚才运行的.Bat命令文件,找到将.proto文件转成C#文件时使用的工具是什么。
在这里插入图片描述
从上面的这个文件中能看出来,我们实际上运行的是ProtoGen里面的一个可执行文件。
在这里插入图片描述
找到下面文件夹中的生成C#的配置文件如下图,双击打开
在这里插入图片描述
Ctrl + F搜索一下LABEL_REPEATED找到对应的位置
在这里插入图片描述
修改文件如下,删除画红框的这段 <xsl:if test=“not($optionXml)”>readonly</xsl:if>
在这里插入图片描述
修改文件如下,在删除掉画红框部分
在这里插入图片描述
都修改完结果如下所示
在这里插入图片描述
保存文件退出 然后重新生成文件尝试一下
在这里插入图片描述

总结

这个其实就是文件中的配置默认生成的list是私有且只有get属性的,修改生成的配置文件即可解决这个问题。

相关文章:

  • C语言中关于操作符的理解
  • 【大数据】NiFi 中的 Controller Service
  • 【Amazon 实验②】使用缓存策略及源请求策略,用于控制边缘缓存的行为及回源行为
  • 攻防世界——game 游戏
  • 10 本让我 2023 年「生产力」暴增 5 倍的经典书|收藏
  • 05. Springboot admin集成Actuator(一)
  • Qt之QWidget 自定义倒计时器
  • 操作系统--磁盘存储器的管理
  • Apache Tomcat httpoxy 安全漏洞 CVE-2016-5388 已亲自复现
  • linux sed命令操作大全
  • Spring IoCDI
  • Mac OS 13+,Apple Silicon,删除OBS虚拟摄像头(virtual camera),
  • 网络爬虫之Ajax动态数据采集
  • 力扣labuladong——一刷day77
  • Debezium系列之:Flink SQL消费Debezium数据格式,同步数据到下游存储系统
  • 时间复杂度分析经典问题——最大子序列和
  • 【知识碎片】第三方登录弹窗效果
  • co模块的前端实现
  • gulp 教程
  • java多线程
  • Linux快速复制或删除大量小文件
  • nodejs:开发并发布一个nodejs包
  • PHP的类修饰符与访问修饰符
  • React Transition Group -- Transition 组件
  • uni-app项目数字滚动
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 技术:超级实用的电脑小技巧
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 每天一个设计模式之命令模式
  • 漂亮刷新控件-iOS
  • 小程序 setData 学问多
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • $.proxy和$.extend
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (02)vite环境变量配置
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • .NET 发展历程
  • .net6Api后台+uniapp导出Excel
  • .NetCore部署微服务(二)
  • .NET命名规范和开发约定
  • @Controller和@RestController的区别?
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [ Linux ] Linux信号概述 信号的产生
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [ARC066F]Contest with Drinks Hard
  • [AX]AX2012 AIF(四):文档服务应用实例
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [BUUCTF]-PWN:[极客大挑战 2019]Not Bad解析
  • [bzoj1324]Exca王者之剑_最小割