我最近得到了一个 Unity VR 项目来整理。非常混乱,甚至不在Git上。它由四个 Unity 场景组成,但每个场景都存在于自己的 Unity 项目中。我需要将所有这些都放在一个构建项目中,这就是当前问题所在。这些场景有很多共同的脚本,它们是在项目之间复制粘贴的。其中一些是完全相同的,另一些则有一两行差异。
从我的研究来看,命名空间似乎是最好的前进方式,因此我不必手动调整所有内容。我给基本场景一个独特的命名空间,效果很好。我将第二个场景作为一个包导入,并给它一个不同的命名空间。
现在我得到了一堆与 Valve Corporation 的 VR 脚本有关的编译错误,例如
Partial declarations of 'SteamVR_Behaviour_BooleanEvent' must not specify different base classes
Duplicate 'Serializable' attribute
The namespace 'Valve.VR' already contains a definition for 'SteamVR_Behaviour_BooleanEvent'
我不理解这些脚本,也不想(也不应该)弄乱它们。
导致最后一个错误的一个例子是:
/// <summary>This event fires whenever a change happens in the action</summary>
public SteamVR_Behaviour_BooleanEvent onChange;
/// <summary>This event fires whenever the action is updated</summary>
public SteamVR_Behaviour_BooleanEvent onUpdate;
/// <summary>This event will fire whenever the boolean action is true and gets updated</summary>
public SteamVR_Behaviour_BooleanEvent onPress;
然后在脚本中进一步向下(SteamVR_Behaviour_Boolean.cs):
[Serializable]
public class SteamVR_Behaviour_BooleanEvent : UnityEvent<SteamVR_Action_Boolean> { }
每个 BooleanEvent 都会突出显示。
我是否在命名空间过程中遗漏了某些内容,或者有人知道解决我的问题的更有效方法吗?我已经花了好几天的时间,所以任何建议都将不胜感激。