这样用switch不好,当地图需要增加或减少元素时,你会改到哭的。
这样用switch不好,当地图需要增加或减少元素时,你会改到哭的。
这里我选择用一个数组保存下来trap的位置。
这样写销毁方法不太好,应该当所有子物体都播放完粒子特效时,销毁整个物体。
讲的太啰嗦了
雷已经标记出来了,谁他妈会去踩。所以方块标记上雷时,不作处理。
这里最好不要强转,用round比较好
4个字节,即255X255X255X255=42 2825 0625,最多能存42亿种方法,太浪费了,2个字节255X255=6 5025 ,足够。
1、客户端不正常关闭可以通过try catch 解决
2、客户端正常close关闭后,服务器端一直接收到空数据。
sql 恶意注入问题
Extension文件夹:存放所有的扩展类
//这样在字典中取值比较麻烦
string myValue;
dic.TryGetValue(key,out myValue);
=========为内置的字典类扩展方法===========
using System.Collections;
using System.Collections.Generic;
public static class DictionaryExtension{
// 尝试根据key得到value,得到了返回value,没有得到直接返回null
public static Tvalue TryGet<Tkey,Tvalue>(this Dictionary<Tkey,Tvalue> dict,Tkey key){
Tvalue mvalue;
dict.TryGetValue(key,out mvalue);
return mvalue;
}
}
// 使用扩展方法
string result = myDic.TryGet("keyStr");
using system;
public enum MyEnum
{
TypeOne,
TypeTwo,
TypeThree,
TypeFour
}
[Serializable]
public class MyJsonData : ISerializationCallbackReceiver
{
[NonSerialized]
public MyEnum myEnum;
public string typeString;
/// <summary>
/// 反序列化之后调用此方法
/// 反序列化:文本信息 -> 对象
/// </summary>
public void OnAfterDeserialize()
{
myEnum = (MyEnum)Enum.Parse(typeof(MyEnum), typeString);
}
/// <summary>
/// 序列化之前调用此方法
/// 序列化:对象 -> 文本信息
/// </summary>
public void OnBeforeSerialize()
{
}
}
MyJsonData jsonData = JsonUtility.FromJson<MyJsonData>("{\"typeString\":\"TypeThree\"}");
print(jsonData.myEnum.ToString());
移动节点至头部,不需要在最后判断Tail是否为空.
if (pNode == Tail) Tail = pNode.prev;这一句已经判断过了.
回调方法,结束以后,把信息传递给了clientsocket,再定义一个socket等于ar里返回结果的socket。
(相当于复制下来)。
Send不会堵塞?
UTF8.GetByte()
Socket.Receive()返回一个int型的值(count)。这个值是接受的字符串的长度,以便知道读取多少位,方便数据转化。
/// <summary>
/// 把某个节点移到头部
/// </summary>
/// <param name="pNode"></param>
public void MoveToHead(DoubleLinkedListNode<T> pNode)
{
if (pNode == null || pNode == Head)
return;
if (pNode.prev == null && pNode.next == null)
return;
if (pNode == Tail)
Tail = pNode.prev;
if(pNode.prev != null)
pNode.prev.next = pNode.next;
if (pNode.next != null)
pNode.next.prev = pNode.prev;
pNode.prev = null;
pNode.next = Head;
Head.prev = pNode;
Head = pNode;
//这里不对
if (Tail == null)
Tail = Head;
}
//最后一句代码有误吧,想不出例子可以证明(Tail == null)
尽量少使用 if else
尽量少嵌套
float、half、fixed在PC上没有太大却别,在移动端区别比较明显。
切线范围为-1~1
法线范围为-1~1
GameObject.Find("Canvas").transform
GameObject go=Resources.Load<GameObject>("GamePanel");
GameObject panel=GameObject.Instantiate(go);
panel transform SetParent(UIParent,false);
实测粘包没有吧一个数据分成一半传输。