unity3d 运行时可编写脚本的对象未更改

7tofc5zh  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(95)

我目前使用的是Unity 2021.351f1版本。我经常在数据库中使用可脚本化对象。但是,可脚本化对象在运行时不会更改。如果我在检查器中检查到有可脚本化对象,我就可以更改它们。这是Unity的错误吗?还是可脚本化对象只能存储静态数据?如何在可脚本化对象中存储动态数据。

bq3bfh9z

bq3bfh9z1#

SO主要用于存储静态数据。动态数据应该在SO的函数中处理(有一个扩展范例,其中多态性稍微偏离了正常的约定,所有模块化代码都将在一个不同的SO中运行--它不会是处理静态数据的SO),或者在组件中处理(而不是MonoBehaviors,但我试图捕获所有情况)。
如果你有一个数据库,那么动态数据可以从数据库中访问。将其存储在内存中会使访问速度快得多,但会占用更多的内存。如果只有“某些”数据是需要的,它应该按需完成或使用一些预缓存技术(如加载他们的事件-想想加载一场比赛,预缓存将在所有球员建立他们的库存;在这一点上,你的Map应该被预缓存,在实际比赛开始之前,你可以预缓存库存物品-这是一个例子,请随意推断,但我想给予你一个想法,游戏事件如何可以帮助这一点)。
SO既不是组件,也不是游戏中可以代表敌人、武器、目标等的对象。它们可以做的是存储关于物品、敌人、武器、目标的数据。静态数据也被鼓励通过预制件来处理(但那是另一个用例)。你也可以使用非关键预制件来保存内部对象(比如混音器、播放列表、音频快照等)。
你的问题很模糊,所以我试着用U3D中的大多数场景来涵盖它。

相关问题