static void Highlight (GameObject go, bool highlighted)
{
if (go != null)
{
for (int i = mHighlighted.Count; i > 0; )
{
Highlighted hl = mHighlighted[--i];
if (hl == null || hl.go == null)
{
mHighlighted.RemoveAt(i);
}
else if (hl.go == go)
{
if (highlighted)
{
++hl.counter;
}
else if (--hl.counter < 1)
{
mHighlighted.Remove(hl);
Notify(go, "OnHover", false);
}
return;
}
}
if (highlighted)
{
Highlighted hl = new Highlighted();
hl.go = go;
hl.counter = 1;
mHighlighted.Add(hl);
Notify(go, "OnHover", true);
}
}
}