我有一张包含多个地区的地图 我选择了一个区域并且它是彩色的。 我想要做的就是当我选择另一个最近选择的区域来淡化和选择我选择的区域时 这是用于为区域着色的代码
targetIndex = System.Array.IndexOf(Maps, target);
Maps[targetIndex].GetComponent<SpriteRenderer>().color = Color.gray;
答案 0 :(得分:0)
添加两个索引。让我们称他们为currentlySelectedIndex
和previouslySelectedIndex
。
在开始时,这两个将指向第一个对象,因为之前没有选定的区域。
当您进行第二次或更多选择时,您会将currentlySelectedIndex
分配给新选择的区域,但previouslySelectedIndex
仍将指向旧区域。
此时,您将使用previouslySelectedIndex
,就像在为区域着色时一样。完成旧区域着色后,您将previouslySelectedIndex
指定为currentlySelectedIndex
。这将继续下去。
伪
//Check if its the first time Selection
currentlySelectedIndex = System.Array.IndexOf(Maps, target);
Maps[currentlySelectedIndex].GetComponent<SpriteRenderer>().color = Color.gray;
previouslySelectedIndex = currentlySelectedIndex;
//After the first time selection
currentlySelectedIndex = System.Array.IndexOf(Maps, target); //New Selected Region
Maps[currentlySelectedIndex].GetComponent<SpriteRenderer>().color = Color.gray;
Maps[previouslySelectedIndex].GetComponent<SpriteRenderer>().color = FadeColor; //Old Selected Region
previouslySelectedIndex = currentlySelectedIndex;