创建类库就是要 .NET Framework ,不是 Standard
创建类库就是要 .NET Framework ,不是 Standard
msg 在子线程不能直接修改 ui,需要间接调用,注意继承关系!
面板动画
Invoke("方法1名称", 5);//5秒后,调用方法1
修改完善msg提示消息在各个面板上的调用,多看几遍吧。
给按钮添加阴影
点击显示登录面板,按住 alt 整体缩放面板
给按钮创建动画
场景相机漫游,创建动画。
因为BaseRequest继承自MonoBehaviour,所以BaseRequest是不能new的,只能通过unity来帮我们实例化,那我们怎么实例化Request呢??
将 GameFacade 设置成单例模式,但是因为 GameFacade 继承自 MonoBehaviour ,所以它的单例模式的设计有点儿特殊,这里设计精巧,多多复习!
因为游戏问题可能经常发起请求,所以让request保持继承自MonoBehaviour
Awake 是最先执行
客户端消息的 封装 解析 的修改。
终于看到 protected 关键字的使用了!
前面数据封包拼接数组时报错了,在此修复。
前面common创建创建时要选DotnetFramework的
修改解析Message类来解析 RequestCode 和 ActionCode
给 Message 增加 Action<> 去调用 Client 中的回调函数
枚举类型不能用 as 转型,要用 (class) 强制转型!
起初的Server命名空间与Server类重名了,导致后面引用时分不清是命名空间还是类。提早讲Server命名空间改为Servers
Concat()可以连接两个数列
concat.toarry;转化为数组
字符串类型转化为字节
int32转化为字节.也能用Utf8
BitConverter.getbytes;处理的全是值类型转化的东西都是4个字节
bitConvertr.toint32
converter转化器
Encoding.Utf8.GetBytes();只支持引用类型;int 这些值类型不支持,
分包可能导致问题就是文字丢失,因为超过了
粘包.与分包
是一种优化机制.
粘包,调用的数据非常小,有非常多的时候,会把数据进行结合
分包,数据量很大的时候,会分开发送
使用异步加载
县级那一个StartServerSync//同步
StartServerAsync//异步
byte buffer
传递数组,偏移(0-size),socketFlags.none,object State(定位一个方法)
ReceiverCallBack(IAsyncResult ar )//IasyncResule.参数
Socket.Connect(new ipendpoint(IP,端口) )//简历链接
接受btye