这是【Unity3D 教程系列第 17 篇】,如果觉得有用的话,欢迎关注专栏。
你有没有遇到过这样的情况?修改了一个变量名,然后其对应的所有引用全部丢失了,不知道该怎么办,只能再引用一次吗?当然不是,怎么办呢?
- 解决方法
首先,声明一个列表,并在 Start 函数里初始化,代码如下
public class SaveObj : MonoBehaviour
{
public List oldSaveObj;
void Start()
{
oldSaveObj = new List();
}
}
其次,在 Unity 里生成一个空物体,挂上 SaveObj 脚本,更改空物体名为 obj_Parent ,然后以它为父物体,再生成5个子物体。 锁定父物体后,全选子物体,拖拽到脚本里的 oldSaveObj 处,列表会根据你拖拽的个数自动设置长度,如下所示 过了不久你觉得列表的变量名 oldSaveObj 不太合适,然后你顺手就直接给改成 saveObj ,你以为只是改个变量名而已,不会有啥影响,然后你回到工程后,却发现是这样的
没错,之前挂载的对象(引用)全部丢失了,你在庆幸还好只是5个,重新拖一遍就行了,可这只是一个脚本,一个变量名,如果更多呢?重复拖拽的方法还可取吗?当然不可取,那怎么做呢?继续看
文字解释: 步骤一:首先引用命名空间 using UnityEngine.Serialization 步骤二:在你需要更改变量名的上方加上如下一行代码: [FormerlySerializedAs(“括号里填修改前的变量名”)],然后再更改你想要的变量名即可,
图解如下: 此时你再回工程看,别害怕,这次没事(有事的话,关注一下,哈哈)
当然,这行代码要在引用还在,未更改变量名前写,切忌!!!
至此,结束。
你的问题得到解决了吗?欢迎在评论区留言。
赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。
结束语 技术是一点一点积累的,大神也不是一天就可以达到的。原地不动就是退步,所以每天进步一点点。 最后,附上一句格言:"好学若饥,谦卑若愚",望共勉。