7评论

修改unity变量名但不丢失序列化值

vian 2018-05-26 1.2k浏览

1.如下图,给gameobject挂一个脚本,脚本里有一个public变量,我们拖放当前gameobject上去即可赋值

 

2.上面步骤很简单,如果突然间要改变量名怎么办?简单直接改啊

按大家所想,就先直接改了

改完之后,这个变量已经变为none了!

 

3.好,以上就是本文要介绍的,修改变量名称如何保留引用?最重要的是不丢失数据!

预设改名、gameobj改名这些都可以,不会丢失里面数据。

好,那么如何来解决修改变量导致丢失数据问题呢?

当然如果你不闲麻烦,每次修改变量后在重新去设置一次对应数据,那你不用往下看了,下面就为你来解决这些麻烦。

 

4.方法操作说明

首先你需要先阅读以下:

https://docs.unity3d.com/ScriptReference/Serialization.FormerlySerializedAsAttribute.html

 create a property to encapsulate myValue without losing any data already assigned to instances of MyClass.这就是我想要的

首先我修改脚本:

将原来的变量名playerObj修改为playerObjNew

再打开unity看看,刚给playerObj设置的数据还在不在?

以上就达到了要求!

 

5.还想改名

这里将原来的变量名playerObjNew修改为playerObjNew1

还是保留数据的

当然你写多个也是没关系的

 

以上小技巧简单实用,欢迎阅读!