数据结构----字典及部分知识总结(2018/10/18)
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则面对,否则则背对着。当然这个计算也会有一点误差,但大致够用。