c# - 统一。某些字段在 Play 上为空
问题描述
我的意思是那些领域。
[SerializeField]
public Type gameStateType;
[SerializeField]
public IGameStateParams gameStateParams;
我在编辑器方法中设置了这些字段,但是,当单击“播放”时,它们变为空。我可以处理Type(我的系统类型都支持存储在字典中,所以我可以只使用它们的 ID 来获取Type),但不能处理IWhatever实现的实例。能解决吗?
如果没有,有没有办法在场景游戏对象中存储任何IWhatever实现的实例?
解决方案
这些类型(Type
和接口)不可序列化..因此,虽然您当然可以使用编辑器脚本来传递值,但这些字段将不会被序列化 => 不保存 => 不会在运行时初始化。
当您进入 PlayMode 时,场景中的所有对象都会重新加载 => 从头开始反序列化 => 因为您的值从未被序列化,所以它们也不会被反序列化。
推荐阅读
- c++ - std::weak_ptr::lock 和对象销毁
- angular - Angular如何在输入字段中选择(突出显示)文本
- javascript - 在 React 中创建和销毁一个东西的最佳方法是一次?(usestate 中未使用的设置器可以吗?)
- protractor - 发送密钥不适用于页面对象模型
- c# - 获取页面的最后一行
- node.js - SyntaxError: Unexpected token 'extends' Node.js VSCode Pug
- python - 在 GEKKO 中执行动态模拟时出错
- sql - postgresSql 查询修正
- android - Android 测试无法识别 Android 类
- php - 我需要关于我的 PDO 登录功能的反馈,会有错误吗?结构如何?