Files
TEngine/Assets/TEngine.Demo/Demo/TEngine.NetDemo/NetTestMain.cs
ALEXTANG 74092e6399 事件系统优化更新
事件系统优化更新
1.使用静态代替单例,静态方法调用时候内存地址无需二次偏移定位
2.UI事件在关闭UI时自动反监听
2022-10-26 15:14:04 +08:00

73 lines
2.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Net;
using TEngine.Runtime;
using TEngine.Runtime.UIModule;
using TEngineProto;
using UnityEngine;
public class NetTestMain : MonoBehaviour
{
public const string MainTcp = "MainTcp";
public string Ip = "127.0.0.1";
public int Port = 8080;
void Start()
{
//Demo示例监听TEngine流程加载器OnStartGame事件
//抛出这个事件说明框架流程加载完成(热更新,初始化等)
GameEvent.AddEventListener(TEngineEvent.OnStartGame,OnStartGame);
}
/// <summary>
/// NetworkChannel通信Channel
/// </summary>
private INetworkChannel _networkChannel;
/// <summary>
/// OnStartGame
/// </summary>
private void OnStartGame()
{
Log.Debug("TEngineEvent.OnStartGame");
//创建网络Channel Service类型 Tcp
_networkChannel = TEngine.Runtime.Network.Instance.CreateNetworkChannel(MainTcp, ServiceType.Tcp, new NetworkChannelHelper());
//连接Channel 本地8081 需要开启服务器
_networkChannel.Connect(IPAddress.Parse(Ip),Port);
//注册消息包回调 ActionCode.Login -> Action Login
TEngine.Runtime.Network.Instance.RegisterHandler(MainTcp,(int)ActionCode.Login,Login);
}
/// <summary>
/// 测试发送消息包,需要开启服务器
/// </summary>
private void Update()
{
if (Input.GetKeyDown(KeyCode.K))
{
var a = MemoryPool.Acquire<MainPack>();
a.actioncode = ActionCode.Login;
a.requestcode = RequestCode.User;
a.loginPack = new LoginPack();
a.loginPack.username = "1111";
a.loginPack.password = "2222";
TEngine.Runtime.Network.Instance.Send(MainTcp, a);
}
}
/// <summary>
/// Login消息回调
/// </summary>
/// <param name="mainPack">消息包</param>
private void Login(MainPack mainPack)
{
Log.Debug(mainPack.extstr);
}
}