// 更新・メイン
void UpdateMain()
{
// 敵生成管理の更新
_enemyGenerator.Update();
// 配置できるかどうか判定
if (_cursor.Placeable == false)
{
// 配置できないのでここでおしまい
return;
}
// カーソルの下にあるオブジェクトをチェック
int mask = 1 << LayerMask.NameToLayer("Tower");
Collider2D col = Physics2D.OverlapPoint(_cursor.GetPosition(), mask);
_selObj = null;
if (col != null)
{
// 選択中のオブジェクトを格納
_selObj = col.gameObject;
}
// マウスクリック判定
if (Input.GetMouseButtonDown(0) == false)
{
//クリックしていないので以下の処理は不要
return;
}
if (_selObj != null)
{
// 砲台をクリックした
// 選択した砲台オブジェクトを取得
_selTower = _selObj.GetComponent <Tower>();
// アップグレードモードに移行する
ChangeSelMode(eSelMode.Upgrade);
}
switch (_selMode)
{
case eSelMode.Buy:
if (_cursor.SelObj == null)
{
// 所持金を減らす
int cost = Cost.TowerProduction();
Global.UseMoney(cost);
// 何もないので砲台を配置
Tower.Add(_cursor.X, _cursor.Y);
// 次のタワーの生産コストを取得する
int cost2 = Cost.TowerProduction();
if (Global.Money < cost2)
{
// お金が足りないので通常モードに戻る
ChangeSelMode(eSelMode.None);
}
}
break;
}
}