包含此页的版本:
不含此页的版本:
本节将介绍如何使用序列化让测试中的变量和信息在域重新加载后继续存在。
发生域重新加载时,所有脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表被重新加载。这也意味着测试类成员中的大多数数据都会丢失。在某些情况下,这是一个问题,因为您可能希望在域重新加载期间保留一些信息。
解决这个问题的方法是序列化。如果您添加[SerializeField]属性,则它将保留其值。请注意,Unity 中的序列化存在一些限制,请参阅 Unity 序列化。
示例 14_PreserveTestState包含上一个赋值的解决方案,但有一个例外;文件名现在是 GUID。
这意味着为了正确清理,TearDown方法需要知道文件名。
目前,首次运行测试时,TearDown将失败,因为它没有给出文件名。在后续运行测试时,由于包含相同 C# 脚本的重复文件,它将失败。
任务是使用序列化修复文件名信息丢失的问题。
解决方案很简单。只需添加一个[SerializeField]属性添加到文件名字段。该溶液作为样品包含在内14_PreserveTestState_Solution.