Unity开发之C#基础-结构体

前言

上一篇介绍了c#中的枚举,本篇我们介绍与枚举一样的复合值类型:结构体(struct)

为什么需要结构体类型?

像int,double这些简单值类型都是在.NET类库中预定义的。很多情况下,人们需要将 不同的简单值类型组合起来使用,这时就可以使用结构类型

结构体的用处?

考虑“复数”这个概念,.NET类库没有类型定义,那么可以在double类型的基础上定义该类 型,它由两个double类型的字段组成,其中a表示复数的实部,b表示虚部。
在这里插入图片描述

结构体变量的创建

在这里插入图片描述

结构体成员方法

结构体还可以有成员方法,这说明结构实际上是部分面向对象,它也支持信息隐藏和封装, 能够进行对象创建和消息通信。
在这里插入图片描述
看到这里可能有的学过编程的同学会觉得这不就是跟差不多吗,那我们就来大致的说一下什么时候用类什么时候用结构体。(没有学过类的同学也不要急,这里只是简单概括一下,后面的文章会讲到类的)

结构体与类的相同和不同

  1. 相同点:C#中结构类型和类类型在语法上非常相似,他们都是一种数据结构,都可以包括数 据成员和方法成员
  2. 不同点:结构是值类型,它在栈中分配空间;而类是引用类型,它在堆中分配空间,栈中保 存的只是引用

结构体和类的适用空间

  1. 当堆栈的空间很有限,且有大量的逻辑对象时,创建类要比创建结构好一些
  2. 对于点、矩形和颜色这样的轻量对象使用结构体
  3. 在表现抽象和多级别的对象层次时,类是最好的选择,因为结构不支持继承

总结

以上就是结构体的简答讲解,下期我们将会讲解到String类型

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Unity Protobuf是一种在Unity游戏开发中常用的序列化格式,它可以方便地将游戏对象转化为二进制数据以便在网络传输或数据存储中使用。Unity Protobuf主要由Google开发,并提供了C++库用于实现序列化和反序列化功能。 Unity Protobuf的使用流程大致如下: 首先,需要在Unity项目中导入Protobuf的C++库,并通过引用命名空间将其包含到代码中。 然后,根据游戏中需要序列化的数据结构,在Protobuf的定义文件中编写相应的消息类型,可以定义消息的字段类型、字段名以及字段的标识号。消息类型的定义类似于结构体或类的定义,可以嵌套定义消息类型。 接着,使用工具根据消息类型的定义文件生成C++的消息类,该类提供了序列化和反序列化的方法,可以方便地将消息进行编码和解码。 在Unity代码中,可以使用生成的C++消息类来创建消息对象,设置消息对象的字段值,并将消息对象进行序列化。 在网络传输中,可以使用Socket或其他网络库将序列化后的消息发送到目标端。 在目标端,可以使用Protobuf的C++库将接收到的二进制数据进行反序列化,恢复成原始的消息对象,进而使用其中的字段值。 Unity Protobuf的好处是它提供了高效的序列化和反序列化方式,可以更好地控制网络传输的数据大小和数据格式。它还支持跨平台的数据交换,可以方便地在不同的游戏客户端和服务器之间进行数据交互。此外,Unity Protobuf还支持消息的版本控制和扩展,可以方便地修改和升级消息定义。 总之,Unity Protobuf是一种强大且灵活的序列化工具,它在Unity游戏开发中有广泛的应用,可以提高网络传输的效率和数据格式的灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想吃烤地瓜.

高抬小手一点

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值