2

我目前正在开发一个项目,我们使用可脚本对象来存储游戏中的所有配置。问题来自使用 git,因为有时我们会丢失存储在这些 SO 上的引用。

例如,我有一个名为 A 的配置,带有一个 GameObject 变量。在我的分支“Branch1”上,变量为空,在我的分支上“Branch2”被分配给一个预制件。我正在研究 Branch1,然后移至 Branch2,但 SO 没有更新,变量仍然为 null,尽管在 Branch2 上该变量实际上有一个值。

我们试图重新导入资产,但没有解决任何问题。唯一似乎起作用的是一个奇怪的过程。如果我们在移动到 BranchB 后对 SO 进行更改,我们保存然后丢弃来自 git(我们使用 sourcetree)的更改,SO 配置现在很好,因为它应该在当前分支上。

这是一种奇怪的行为,我们拥有的更奇怪的解决方案会导致大量时间损失和一些错误。

任何人都知道正在发生的事情并知道如何解决它?

我们正在使用 Unity2019.1.14f1,我们使用 Odin 作为 SO 的自定义检查器(也许是相关的)。

4

1 回答 1

0

对于任何偶然发现这个问题的人:

保存项目,在 File->Save Project 下,您将看到您的 SO 在您首选的源代码控制软件中打开以进行提交。

Kurt-Dekker(下面链接的线程)详细说明了为什么“另存为”和“保存”不起作用,但“保存项目”却起作用。

Kurt-Dekker 在此线程中的第一个答案:https ://forum.unity.com/threads/scriptableobjects-are-not-updating-when-changed-on-the-filesystem-via-git.834109/

于 2022-01-20T18:20:39.540 回答