オブジェクトを一括で表示/非表示
/// <summary>
/// オブジェクトを表示/非表示
/// </summary>
void SetActive(bool _activate,
GameObject _g1, GameObject _g2 = null, GameObject _g3 = null, GameObject _g4 = null, GameObject _g5 = null,
GameObject _g6 = null, GameObject _g7 = null, GameObject _g8 = null, GameObject _g9 = null, GameObject _g10 = null,
GameObject _g11 = null, GameObject _g12 = null, GameObject _g13 = null, GameObject _g14 = null, GameObject _g15 = null,
GameObject _g16 = null, GameObject _g17 = null, GameObject _g18 = null, GameObject _g19 = null, GameObject _g20 = null)
{
Activater(_g1); Activater(_g2); Activater(_g3); Activater(_g4); Activater(_g5);
Activater(_g6); Activater(_g7); Activater(_g8); Activater(_g9); Activater(_g10);
Activater(_g11); Activater(_g12); Activater(_g13); Activater(_g14); Activater(_g15);
Activater(_g16); Activater(_g17); Activater(_g18); Activater(_g19); Activater(_g20);
void Activater(GameObject _g)
{
if (_g != null)
_g.SetActive(_activate);
}
}
void SetActive(bool _activate, GameObject[] _activateObjects)
{
foreach (GameObject item in _activateObjects)
item.SetActive(_activate);
}
これがあれば、いちいち
object1.SetActive(true);
object2.SetActive(true);
object3.SetActive(true);
foreach(GameObject g in objects)
g.SetActive(true);
なんて書かず、
SetActive(true, object1, object2, object3);
SetActive(true, objects);
と書けます。
前回と異なるランダム整数を取得
/// <summary> /// 前回と異なるランダム整数を取得 /// </summary> public int RandomInt(int _currentInt = 987654321, int _maxInt = 987654321) { int randomInt = 0; while (true) { //Maxに整数を指定した場合 if (_maxInt != 987654321) { if (_maxInt == 0) return randomInt; randomInt = UnityEngine.Random.Range(0, _maxInt); if (randomInt == _currentInt) continue; break; } } return randomInt; }
ランダム値って、続けて同じ値が出てほしくないですよね。
ランダムBoolを取得
bool RandomBool(float _max) { float r = UnityEngine.Random.Range(0f,_max); if (r == 0) return true; return false; } bool RandomBool(int _max) { int r = UnityEngine.Random.Range(0, _max); if (r == 0) return true; return false; }
ランダムBoolのたびにローカル変数作って…ってやらなくてもよくなります。
ゲームを終了する(UNITY画面なら、試動をやめる)
/// <summary>
/// ゲーム終了
/// </summary>
public void GameQuit()
{
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
}
これはもう、なくていいゲームなんて無いと思います。