2017-08-09 23 views
0

我有一張包含多個區域的地圖 我選擇了一個區域並將其着色。 所有我想要做的是,當我選擇最近選擇的褪色和顏色彼此區我選擇 這是用於顏色的區域SpriteRenderer.Color && Colider Interact

targetIndex = System.Array.IndexOf(Maps, target); 
Maps[targetIndex].GetComponent<SpriteRenderer>().color = Color.gray; 
+0

你說你想要的區域顏色從灰色線性插值到另一個選擇的顏色? – oxrock

回答

0

添加兩個指數的代碼。我們稱他們爲currentlySelectedIndexpreviouslySelectedIndex

在beginnig這兩個將指向第一個對象,因爲沒有以前選擇的區域。

當您進行第二次或進一步選擇時,您會將您的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; 
相關問題