C#字典Dictionary在unity中使用案例
C#字典在unity中使用案例
1、前言:
讲起C#Dictionary,许多人闻之色变,不了解,不清楚,即使知道,了解,也不一定会用,鉴于此,本人特地总结了一个使用字典的案例。
2、什么是字典。
必须包含名空间System.Collection.Generic
Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值)
键必须是唯一的,而值不需要唯一的
键和值都可以是任何类型(比如:string, int, 自定义类型,等等)
通过一个键读取一个值的时间是接近O(1)
键值对之间的偏序可以不定义
3、下面举个例子。详细解释.
3.1目的:让每个红色小球都按照各自路径移动。
//移动物体。
privateTransform m_MoveGameObjectParent;
//物体的移动路径。
privateTransform m_MovePathParent;
//定义一个字典,用来存储移动物体和移动路径。
private Dictionary<Transform,List>wayDict;
void Start()
{
m_MoveGameObjectParent=GameObject.Find(“XXX”).transform;
m_MovePathParent=GameObject.Find(“XXX”).transform;
//向字典里面存储移动物体和响应的移动路径。
for(int i=0;i<m_MoveGameObjectParent.ChildCount;i++)
{
//存储移动路径。
ListwayList=new List();
for(int j=0;j<m_MovePathParent.GetChild(i).Count;j++)
{
wayList.Add(m_MovePathParent.GetChild(i).GetChid(j).position);
}
wayDict.Add(m_MoveGameObjectParent.GetChid(i),wayList);
}
Move();
}
private void Move()
{
//遍历字典取值
foreach(Transform key in wayDict)
{
List<Vector3>Pos=wayDict[key];
Switch()
{
case “Sphere”:
for(int i=0;i<Pos.count;i++)
{
//移动方法。
}
break;
default:
break;
}
}
}