🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1155閲覧

複数複製し、それぞれhpバーを変動させたい

dora123

総合スコア2

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/11/29 12:41

編集2020/11/29 12:55

実現したいこと

プレーヤー以外のhp,mpバーも変動させたい
初心者で、調べてもわからなかったので質問します。

発生している問題

エラーメッセージなし
3対3のゲームで5体cpu用のプレハブを複製している為、参照したいオブジェクト名が被りHP,mpバーの表示がうまく機能していません
新たに4体ずつ名前を変えてプレハブを作るのも思いつきましたが、大変そうなので他にいい方法がないか探しています

該当のソースコード

public void Start() { if (D.play1 == true) { int value = Random.Range(1, 60 + 1); if (value <= 10) { GameObject enemy1 = (GameObject)Instantiate(Enemy, new Vector3(-46, 20, -59), Quaternion.identity); iti = false; migi = false; } if (value >= 11 && value <= 20) { GameObject enemy2 = (GameObject)Instantiate(Enemy, new Vector3(-46, 20, -65), Quaternion.identity); ni = false; migi = false; } if (value >= 21 && value <= 30) { GameObject enemy3 = (GameObject)Instantiate(Enemy, new Vector3(-46, 20, -71), Quaternion.identity); san = false; migi = false; } if (value >= 31 && value <= 40) { GameObject enemy4 = (GameObject)Instantiate(Enemy, new Vector3(260, 20, 129), Quaternion.Euler(0f, 180f, 0f)); hida = false; yon = false; } if (value >= 41 && value <= 50) { GameObject enemy5 = (GameObject)Instantiate(Enemy, new Vector3(260, 20, 135), Quaternion.Euler(0f, 180f, 0f)); go = false; hida = false; } if (value >= 51) { GameObject enemy6 = (GameObject)Instantiate(Enemy, new Vector3(260, 20, 141), Quaternion.Euler(0f, 180f, 0f)); roku = false; hida = false; } for (int i = 0; i < 5; i++) { if (ni == true) { int value3 = Random.Range(1, 30 + 1); if (value3 <= 10) { GameObject enemy1 = (GameObject)Instantiate(Enemycpu, new Vector3(-46, 20, -65), Quaternion.identity); } if (value3 >= 21) { GameObject enemy1 = (GameObject)Instantiate(Enemy2cpu, new Vector3(-46, 20, -65), Quaternion.identity); } if (value3 >= 11 && value3 <= 20) { GameObject enemy1 = (GameObject)Instantiate(Enemy3cpu, new Vector3(-46, 20, -65), Quaternion.identity); } ni = false; migi = false; } if (iti == true) { int value3 = Random.Range(1, 30 + 1); if (value3 <= 10) { GameObject enemy1 = (GameObject)Instantiate(Enemycpu, new Vector3(-46, 20, -59), Quaternion.identity); } if (value3 >= 21) { GameObject enemy1 = (GameObject)Instantiate(Enemy2cpu, new Vector3(-46, 20, -59), Quaternion.identity); } if (value3 >= 11 && value3 <= 20) { GameObject enemy1 = (GameObject)Instantiate(Enemy3cpu, new Vector3(-46, 20, -59), Quaternion.identity); } migi = false; iti = false; } if (san == true) { int value3 = Random.Range(1, 30 + 1); if (value3 <= 10) { GameObject enemy1 = (GameObject)Instantiate(Enemycpu, new Vector3(-46, 20, -71), Quaternion.identity); } if (value3 >= 21) { GameObject enemy1 = (GameObject)Instantiate(Enemy2cpu, new Vector3(-46, 20, -71), Quaternion.identity); } if (value3 >= 11 && value3 <= 20) { GameObject enemy1 = (GameObject)Instantiate(Enemy3cpu, new Vector3(-46, 20, -71), Quaternion.identity); } migi = false; san = false; } if (roku == true) { int value3 = Random.Range(1, 30 + 1); if (value3 <= 10) { GameObject enemy1 = (GameObject)Instantiate(Enemycpu, new Vector3(260, 20, 141), Quaternion.Euler(0f, 180f, 0f)); } if (value3 >= 21) { GameObject enemy1 = (GameObject)Instantiate(Enemy2cpu, new Vector3(260, 20, 141), Quaternion.Euler(0f, 180f, 0f)); } if (value3 >= 11 && value3 <= 20) { GameObject enemy1 = (GameObject)Instantiate(Enemy3cpu, new Vector3(260, 20, 141), Quaternion.Euler(0f, 180f, 0f)); } hida = false; roku = false; } if (go == true) { int value3 = Random.Range(1, 30 + 1); if (value3 <= 10) { GameObject enemy1 = (GameObject)Instantiate(Enemycpu, new Vector3(260, 20, 135), Quaternion.Euler(0f, 180f, 0f)); } if (value3 >= 21) { GameObject enemy1 = (GameObject)Instantiate(Enemy2cpu, new Vector3(260, 20, 135), Quaternion.Euler(0f, 180f, 0f)); } if (value3 >= 11 && value3 <= 20) { GameObject enemy1 = (GameObject)Instantiate(Enemy3cpu, new Vector3(260, 20, 135), Quaternion.Euler(0f, 180f, 0f)); } hida = false; go = false; } if (yon == true) { int value3 = Random.Range(1, 30 + 1); if (value3 <= 10) { GameObject enemy1 = (GameObject)Instantiate(Enemycpu, new Vector3(260, 20, 129), Quaternion.Euler(0f, 180f, 0f)); } if (value3 >= 21) { GameObject enemy1 = (GameObject)Instantiate(Enemy2cpu, new Vector3(260, 20, 129), Quaternion.Euler(0f, 180f, 0f)); } if (value3 >= 11 && value3 <= 20) { GameObject enemy1 = (GameObject)Instantiate(Enemy3cpu, new Vector3(260, 20, 129), Quaternion.Euler(0f, 180f, 0f)); } hida = false; yon = false; } } D.paly1 = false; } } }

補足

一部略で1キャラの例を載せました

unity.2019.40.f1
C♯

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ayousanz

2020/11/29 12:51

コードはハイライトにしてください それだけで見やすく,回答がつきやすくなります
dora123

2020/11/29 12:56

改善しました 初心者ですみません ありがとうございます
guest

回答1

0

ベストアンサー

生成するときにlistに入れてindex指定するか,辞書型に入れてkeyを指定するなど割と方法はあると思うのですが,それだとだめなのでしょうか?

投稿2020/11/29 14:41

ayousanz

総合スコア258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dora123

2020/11/29 14:48

辞書型は実は前試したのですが、うまくいきませんでした おそらくちゃんと書ければできるのかもしれませんので、もう一回試してみます ありがとうございます
dora123

2020/11/30 03:51

publicで指定するだけでいけました ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問