UI搭建的規範
1. 一個大的UIPanel裡面存放一個指令碼 該指令碼控制
2. 在這個指令碼中能動態找的就動態找 儘量少的拖拉
3. 管理的角度是放在不參與物體身上
在對按鈕委託的時候執行 void 無引數 的方法
球形範圍 獲取在觸發器中所有物體
字典和list
字典:
1).定義: Dictionary<string,string> userDictionary = new Dictionary<string, string>();
2). value可以重複 key 不能重複 字典: key---> value
3).字典是無序的就不存在插入和索引!!
4).userDictionary .Add(key, value) 不能重複新增Key值
5).userDictionary .Remove(key) 刪除對應key的鍵值對 若為false 就代表沒有該鍵
6).userDirectionary.ContainsKey(key) 是否包含鍵 若包含true 不包含為false 通常在插入的時候使用這個功能先判斷一下
7).一般不使用ContainsValue 因為value不是唯一的 所以不具有代表性
8).userDictionary[key] = X 修改對應Key的value
9).遍歷字典: 遍歷字典必須使用foreach
foreach (var v in userDictionary)
{
Console.WriteLine(v.Key);
Console.WriteLine(v.Value);
}
兩者比較:
List<> --------------> 固定資料型別的可變長陣列 (add removeat remove removerange indexof count sort 翻轉 insert conti**)
list是訊息中心, 存東西的
1. 接受資訊並排隊等待執行 執行完就幹掉
2. 訊息有優先順序 優先順序越高越先執行
Dictionary<> --> 鍵值對 key 唯一(add, clear, remove(key) ,ContainsValue [key])
字典: 常用於快取資源 (UI和預製體)
AssetManager: dic<string,gameobj>
擴充:
1).PlayerPrefs --> 變相的字典 這裡面的float string int 都是值的資料型別 key 統統是string
2). Physics.OverlapSphere
3).Vector3.Dot 表示求兩個向量的點積;
Vector3.Cross 表示求兩個向量的叉積。
通過點積的計算我們可以簡單粗略的判斷當前物體是否朝向另外一個物體:
只需要計算當前物體的transform.forward向量與 (otherObj.transform.position – transform.position)的點積即可,
大於0則面對,否則則背對著。當然這個計算也會有一點誤差,但大致夠用。