おすすめ!自作ゲーム!

【バイサバ!】溜めて、狙って、ぶっ飛ばせ!チャージで全て薙ぎ払うタワーディフェンス!

イメージ
バイサバをBOOTHでも販売開始しました! サーマーセールも合わせて開催! 今なら 50%OFF! の 500円で購入可能 に! ダウンロードは →  https://yamatogamelabs.booth.pm/items/8407425   DLsiteで販売しています。(Bloggerの規約上、リンクは貼れません。 Bye!Bye!Survivor!  もしくは  RJ01621439  で検索してください) デモ版もあるのでまずはお試しから! ■ ゲーム概要 溜めて、狙って、ぶっ飛ばせ! 右クリック長押しでチャージ! 溜めるほど、攻撃がどんどんパワーアップ! 攻撃力・攻撃サイズ・Hit数・クリティカルまで強化される、強力なチャージ攻撃で、押し寄せるスライムをまとめて吹き飛ばそう! 敵をピンポイントで狙い撃つか、 最大までチャージして敵の群れを一気に薙ぎ払うか。 シンプルな操作で、チャージのタイミングと狙いが勝敗を分ける! チャージ攻撃で敵をまとめて撃破! ■ このゲームの魅力 シンプルな操作で、チャージのタイミングと狙いが勝敗を分ける! チャージ攻撃で敵をまとめて撃破! 基本操作は左右移動だけ。 攻撃は自動で行われるので、難しい操作は必要ありません。 そこに加わるのが、強力なチャージ攻撃。 チャージするほど攻撃が強くなり、 大きさやHit数も増加! 大量の敵をまとめて貫通させたり、 強力な一撃で狙った敵を撃ち抜いたり。 いつ撃つか、どこを狙うかはあなた次第! ■ クリスタルを守り抜け! スライムたちは、あなたではなくクリスタルを狙って押し寄せてきます。 敵がクリスタルに到達するとダメージを受け、 HPが0になるとクリスタルが大爆発! そのまま空の彼方へ吹き飛ばされてゲームオーバー! 攻撃だけでなく、クリスタルのHP管理も重要です。 ボスを倒してステージを突破! ステージの最後には強力なボスが登場。 大量のHPを持ち、強力な攻撃を繰り出してきます。 さらに、ボスがクリスタルに到達すると即ゲームオーバー! 敵の攻撃は、こちらの攻撃で相殺することも可能。 迫りくる敵と弾をまとめて薙ぎ払い、 ボスがクリスタルへ到達する前に撃破しよう! ■ オブ...

Unityで子オブジェクトをすべて取得したり、1つだったり

どうもどうも、
初心者ゲーム制作者の大和です

自分がゲーム制作の過程で
解決できたことを書いていきます


今回は悩みの種だったオブジェクトの取得について
とくに、子オブジェクトの取得です


Unityで子オブジェクトをすべて取得したり、1つだったり


自分の認識では、「foreach」ですべてを!
transform.GetChild(子の番号)で一つを!
な、感じです

実際に使っているのは↓
状況に応じでいいとこどりすればいけるだろっ!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChildGet : MonoBehaviour
{
 // ステージを取得する
 [SerializeField] private List<GameObject> stageList = new List<GameObject>();
 void Start()
 {
  // 親オブジェクト
  Transform parentTransform = GameObject.Find("Stage").transform;

  // 0番目の子を取得 --- 直接
  print(parentTransform.GetChild(0).name);

  print("---------------------------------------------------");

  // 子をすべて取得 --- すべてをリストに入れる
  foreach (Transform child in parentTransform)
        {
   stageList.Add(child.gameObject);
         print(child.name);
        }

  print("---------------------------------------------------");

  // 現在のステージの番号
  int nowStageNum = 1;
  // リストの中身 --- ついでに一つのステージを表示してみた
  for (int i = 0; i < stageList.Count; i++)
  {
   // 表示するステージ --- 数字は0から、ステージは1から始まるので注意が必要
   if (i == nowStageNum) stageList[i].SetActive(true);

   print(stageList[i].name);
  }
 }
}


foreachって、
非表示のオブジェクトも取得できるから便利!

…と、勝手に思っていたら、
「transform.GetChild(子の番号)」 でも普通に取得できました
 

 「GameObject.Find」だと、
非表示のオブジェクトを取得できないだけで、
上二つは非表示でもOK!


foreachが便利なのは、
まとめてリストに放り込めることですね

一つ一つマウスで放り込むのは面倒なので
(ソースの // 子をすべて取得 --- すべてをリストに入れるの部分)


↑ 何度もマウスをドラッグ&ドロップ…

ステージ数が多くなると面倒で面倒で(;^_^A
ループで解決できてよかったー

このブログの人気の投稿

【バイサバ!】溜めて、狙って、ぶっ飛ばせ!チャージで全て薙ぎ払うタワーディフェンス!

「Unity」地面との当たり判定は、「ContactFilter2D」でいいんじゃない?