我正在使用多人游戏和单人游戏模式创建游戏,每个游戏都有一个单独的场景。我在这两个场景中都使用了许多脚本,例如我创建的UI脚本。但是,在单人游戏模式中,我希望UI脚本控制波浪横幅,而我不希望在多人游戏模式中出现这种情况。如何让UI脚本在两个不同的场景中做稍微不同的事情。
请注意。我已经想到了:
的可能性<UserControl.Resources>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="IsVisible" Value="true">
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<Border BorderBrush="Red" BorderThickness="1">
<AdornedElementPlaceholder/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
并且只是想知道是否有更好的方法来执行此操作,因为我必须为多个脚本执行此操作。
答案 0 :(得分:1)
要求字符串比较听起来有点麻烦。
我建议实现一个枚举。这更可靠:
public enum GameMode {
Singleplayer,
Multiplayer
}
然后在您的代码中使用它:
// you need to rewrite your code to get the enum
// e.g.
var gameMode = SceneManager.GetActiveScene().GameMode;
switch (gameMode)
{
case GameMode.Singleplayer:
// Specific Logic for Singleplayer
break;
case GameMode.Multiplayer:
// Specific Logic for Multiplay
break;
default:
throw new ArgumentOutOfRangeException();
}