NoSugarNet/NosugarNetForUnity/Assets/MainUI.cs

86 lines
2.3 KiB
C#
Raw Normal View History

2024-04-15 11:32:03 +08:00
using NoSugarNet.ClientCoreNet4x;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MainUI : MonoBehaviour
{
public Button btnStart;
public InputField inputIP;
public InputField inputPort;
public Text textLog;
// Start is called before the first frame update
void Start()
{
btnStart.onClick.AddListener(InitNoSugarNetClient);
textLog.text = "-";
AddLog("123");
}
// Update is called once per frame
void Update()
{
}
void InitNoSugarNetClient()
{
if (string.IsNullOrEmpty(inputIP.text))
{
OnNoSugarNetLog(0,"<22><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>");
return;
}
AppNoSugarNet.OnUpdateStatus += OnUpdateStatus;
AppNoSugarNet.Init(inputIP.text, Convert.ToInt32(inputPort.text), OnNoSugarNetLog);
}
static void OnUpdateStatus(NetStatus netState)
{
string info = $"User:{netState.ClientUserCount} Tun:{netState.TunnelCount} rec: {ConvertBytesToKilobytes(netState.srcReciveSecSpeed)}K/s|{ConvertBytesToKilobytes(netState.tReciveSecSpeed)}K/s send: {ConvertBytesToKilobytes(netState.srcSendSecSpeed)}K/s|{ConvertBytesToKilobytes(netState.tSendSecSpeed)}K/s";
OnNoSugarNetLog(0,info);
}
static string ConvertBytesToKilobytes(long bytes)
{
return Math.Round((double)bytes / 1024, 2).ToString("F2");
}
static void OnNoSugarNetLog(int LogLevel, string msg)
{
Debug.Log(msg);
AddLog(msg);
}
static string logText = "";
void OnGUI()
{
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>µ<EFBFBD>GUIStyle
GUIStyle style = new GUIStyle();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
style.fontSize = 24;
GUI.TextField(new Rect(10, 300, Screen.width - 20, 1000), logText, style);
}
static void AddLog(string msg)
{
// <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD>־<EFBFBD><D6BE>Ϣ<EFBFBD><CFA2><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
logText += string.Format("{0}\n", System.DateTime.Now.ToString("HH:mm:ss> ") + msg);
// <20><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (logText.Split('\n').Length > 50)
{
string[] lines = logText.Split('\n');
logText = "";
for (int i = lines.Length - 50; i < lines.Length; i++)
{
logText += lines[i] + "\n";
}
}
}
}