Пример #1
0
    public override void Awake()
    {
        Debug.LogError("Using Error to force Unity log to show...");
        ExecutableDirectory = new System.IO.DirectoryInfo(UnityEngine.Application.dataPath).Parent;
        Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None);
        Debug.unityLogger.filterLogType = LogType.Log;
        ServerDirectory = ExecutableDirectory;
        var launchArgs = Environment.GetCommandLineArgs();

        if (launchArgs.Length > 0)
        {
            List <CommandLineArg> finalArgs = new List <CommandLineArg>();
            string        name = "";
            List <string> args = new List <string>();
            for (int i = 0; i < launchArgs.Length; i++)
            {
                var lArg = launchArgs[i];
                if (lArg.Substring(0, 1) == "-")
                {
                    if (i != 0 || args.Count > 0)
                    {
                        finalArgs.Add(new CommandLineArg(name, args.ToArray()));
                    }
                    name = lArg;
                    args = new List <string>();
                }
                else
                {
                    args.Add(lArg);
                }
            }
            finalArgs.Add(new CommandLineArg(name, args.ToArray()));
            CommandLineArgs = finalArgs.ToArray();
        }

        Log.Info($"Target frame rate: {Application.targetFrameRate}");
        Application.targetFrameRate = 60;
        Log.Info($"New target frame rate: {Application.targetFrameRate}");

        foreach (var arg in CommandLineArgs)
        {
            if (arg.Name.ToLower() == "-serverdir" && arg.Arguments.Length > 0)
            {
                ServerDirectory = new System.IO.DirectoryInfo(arg.Arguments[0]);
                if (!ServerDirectory.Exists)
                {
                    Log.Error($"Server directory ({ServerDirectory}) does not exist! Not running server.");
                    return;
                }
            }
        }

        Log.Info($"Executable directory: {ExecutableDirectory}");
        Log.Info($"Server directory: {ServerDirectory}");

        ReadSettings();

        Instance = this;
        MasterServer.ipAddress     = "54.213.90.85";
        MasterServer.port          = 23466;
        Network.natFacilitatorIP   = "54.213.90.85";
        Network.natFacilitatorPort = 50005;

        View        = gameObject.GetComponent <NetworkView>();
        View.viewID = new NetworkViewID();

        Server = new DistanceServer();
        Server.Init();

        LoadPlugins();

        Log.WriteLine($"Starting server version {Server.DistanceVersion} on port {Server.Port} (UseNat: {Server.UseNat})");

        Network.InitializeServer(Server.MaxPlayers, Server.Port, Server.UseNat);
    }
Пример #2
0
 public DistancePlayer(DistanceServer server, string guid)
 {
     Server          = server;
     UnityPlayerGuid = guid;
 }