今天在项目中用到了结构体来储存一些不同类型的数据,结构体目的是在任意地方调用和修改其中的数据信息(相信这里对结构体比较了解的人已经发现问题所在了)。当我决定用结构体的那一刻,我就已经走上了一条错误的道路上了。于是我花了白白的一天去各方面找问题

。下面我来分析结构体的用处:

        unity中最常用的结构体就是Vector2,3。结构体的内存是在栈中开辟,所以其内存回收比较容易。在update里new新的结构体也不会影响游戏的帧数。注意其只能是值传递,其相当于自带了“只读属性”,只有直接修改它的值,想要通过函数返回(强制拷贝返回),或拷贝对象来修改结构体中的数据值是不可能的。这就造成了我的问题:在其他定义域想要修改结构体的值是非常难的,而且极不方便(它传递的是拷贝后的数据,修改后不会对原结构体造成影响)。这显然和项目的需求不同。它的值传递属性是语言定死了的。