Database
datasource
port
user
pwd
Database
datasource
port
user
pwd
using System.Net.Sockets;
using System.Net;
//创建socket
Socket clientSocket = new Socket(AddressFamliy.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSocket.Connet(new IPEndpoint(IPAddress.Parse("xxx.xx.xx.xx"),88));
//接收
byte[] data = new byte[1024];
int count = clientSocket.Receive(data);
string msg = Encoding.UTF8.GetString(data, 0, count);
Console.Write(msg);
//发送
string s = Console.ReadLine();
clientSocket.Send( Encoding.UTF8.GetBytes(s));
clientSocket.Close();
需要巩固的地方:属性和字段的区别
主角(跑)
跑道
障碍物(集装箱、箱子)
掉落物品(金币、)
UI界面(UI之间的交互)
游戏的判定
粒子特效
游戏的数据(静态、动态)
声音管理
对象池(优化内存)
TCP三次握手,TCP传输稳定,不会丢失,UDP速度快,不稳定,发出消息不管对方有没有接收到。
A发给B,B发响应给A,A收到响应说我收到响应了,开始发送数据。四次传送完了,四次挥手,A问B可以断开连接了吗,B回到收到,可以断开,A回答收到。
每台主机有局域网IP,公网IP
局域网IP由路由器分配,cmd,输入ipconfig,
外网IP百度搜索IP,可查本机外网ip。
路由器需要外网IP,阿里云里上买一个服务器。
知名端口号在0-1023之间,网络开发游戏这些自定义/动态分配的端口号在49152-65535之间。
注册服务端口1024-49152,动态端口1024-65535
stan
锚点和缩放
调试
推荐直接使用 JSON .NET 来解析json 直接json 映射obj 代码量会小很多
https://assetstore.unity.com/packages/tools/input-management/json-net-for-unity-11347
public void ParseItemJson(){
TextAsset itemAsset = Resources.Load("Items") as TextAsset;
ArrayList wrapList = JsonConvert.DeserializeObject<ArrayList>(itemAsset.text);
foreach (var wrap in wrapList)
{
Item item = JsonConvert.DeserializeObject<Item>(wrap.ToString());
switch (item.ItemType)
{
case Item.ItemTypeEnum.Consumable :
item = JsonConvert.DeserializeObject<Consumable>(wrap.ToString());
break;
case Item.ItemTypeEnum.Weapon:
item = JsonConvert.DeserializeObject<Weapon>(wrap.ToString());
break;
case Item.ItemTypeEnum.Equipment:
item = JsonConvert.DeserializeObject<Equipment>(wrap.ToString());
break;
case Item.ItemTypeEnum.Material:
item = JsonConvert.DeserializeObject<ItemMaterial>(wrap.ToString());
break;
default:
break;
}
if (item != null) itemList.Add(item);
}
Debug.Log(itemList.Count);
}
使用 JSON .NET For Unity 解析json
toString 方法可以简写
public override string ToString()
{
return JsonConvert.SerializeObject(this);
}
怎样用代码解决这个问题,不要直接打开txt另存更改编码的
不是为了装B使用设计模式
世界坐标系,局部坐标系
--lua语言像py一样是一种轻量级语言也是siki老师说的约定大于约束,所以在实际开发中像访问table是需要约束的进行值访问
--luaTable.Length --只返回使用默认key的value[如a={"abc",123,3.14} 则返回3]
访问时只需指定所属类型和索引即可[如 luaTable.Get<string>(1)]
Action<string> run = luaEnv.Global.Get<Action<string>>("run");
run("siki")
Action<> 只支持单参数的使用,无返回值
通过Input.mousePosition可以获取鼠标指向该位置的坐标
通过InpuGet Touch(0).position可以获取单个手指触摸屏幕时手指的坐标
transform.position获取的是全局坐标
接口隔离原则
合成复用原则
迪米特原则
里氏替换原则
实现 开闭原则的方式之一
单一职责
只有一个引起它变化的原因