根据当前场景修改脚本

时间:2016-12-20 20:42:06

标签: c# unity3d

我正在使用多人游戏和单人游戏模式创建游戏,每个游戏都有一个单独的场景。我在这两个场景中都使用了许多脚本,例如我创建的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>

并且只是想知道是否有更好的方法来执行此操作,因为我必须为多个脚本执行此操作。

1 个答案:

答案 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();
}