一、目的:
1、如果每一個物體都隱藏就將obj_fly_male_first隱藏的問題;
2、這個問題可以提升到:數組裏面如果所有的元素都是同一個屬性就執行某動作
二、操作
1、方法一:
①如下圖:數組裏的物體,如果每一個物體都隱藏就將obj_fly_male_first隱藏
②for循環如果某物體隱藏,則計數一次,當計數次數等於數組長度,就開始讓obj_fly_male_first隱藏,這樣就完成了目的
③爲了讓物體在狀態變換後只變換一次,則使用一個bool變量來控制
④計數、設置隱藏分爲倆個步驟,不要混在一起,以後其餘程序也要這樣,功能單獨分開執行
/// <summary>
/// 功能:顯示或者隱藏雄UI
/// </summary>
private void ShowOrHide_male_first()
{
for (int i = 0; i < arr_obj_male_first.Length; i++)
{
if (arr_obj_male_first[i].gameObject.activeSelf == false)
{
if (arr_obj_male_first[i].GetComponent<MeshRenderer>().receiveShadows == true)
{
arr_obj_male_first[i].GetComponent<MeshRenderer>().receiveShadows = false;
hide_maleNumber++;
}
}
else if (arr_obj_male_first[i].gameObject.activeSelf == true)
{
if (arr_obj_male_first[i].GetComponent<MeshRenderer>().receiveShadows == false)
{
arr_obj_male_first[i].GetComponent<MeshRenderer>().receiveShadows = true;
hide_maleNumber--;
}
}
}
if (hide_maleNumber < arr_obj_male_first.Length && obj_fly_male_first.gameObject.activeSelf == false)
{
obj_fly_male_first.gameObject.SetActive(true);
}
else if (hide_maleNumber >= arr_obj_male_first.Length && obj_fly_male_first.gameObject.activeSelf == true)
{
hide_maleNumber = arr_obj_male_first.Length;
obj_fly_male_first.gameObject.SetActive(false);
}
}