質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%

Q&A

1回答

5367閲覧

Unity HPと攻撃力の実装

bookspace

総合スコア13

0グッド

0クリップ

投稿2019/07/12 06:42

編集2019/07/12 07:00

Unityで自作のシューティングゲームを作っているのですがHPと弾の攻撃力を実装するためにはどういうようなプログラムをューティングゲームを作っているのですがHPと弾の攻撃力を実装するためにはどういうようなプログラムを書けばいいでしょうか?

今のところ下記のようなプログラムを書いています

using System.Collections; using System.Collections.Generic; using UnityEngine; public class RockController : MonoBehaviour { public int hp = 10; public GameObject explosionPrefab; float fallSpeed; float rotSpeed; // Use this for initialization void Start () { this.fallSpeed = 0.01f + 0.1f * Random.value; this.rotSpeed = 5f + 3f * Random.value; } // Update is called once per frame void Update () { transform.Translate(-fallSpeed, 0, 0, Space.World); transform.Rotate(0, 0, rotSpeed ); if (transform.position.x < -12f) { Destroy (gameObject); } } // 他のオブジェクトと衝突した時に呼び出される関数 private void OnTriggerEnter2D( Collider2D collision ) { string yourTag = collision.gameObject.tag; // 弾と衝突した場合 if ( yourTag == "bulletPrefab" ) { // 弾を削除する Destroy( collision.gameObject ); hp = hp - bulletPrefab.power; if (hp <= 0) { // 敵を削除する Destroy(gameObject); } } // ロケットと衝突した場合 if ( collision.name.Contains( "rocket" ) ) { // 弾を削除する Destroy( collision.gameObject ); // 敵を削除する Destroy(gameObject); //GameObject.Find ("Canvas").GetComponent<UIController> ().GameOver (); } // ロケットと衝突した場合 if ( collision.name.Contains( "saport" ) ) { // 弾を削除する Destroy( collision.gameObject ); // 敵を削除する Destroy( gameObject ); } // ロケットと衝突した場合 { if ( yourTag == "bomb" ) // 弾を削除する Destroy( collision.gameObject ); // 敵を削除する Destroy( gameObject ); //GameObject.Find ("Canvas").GetComponent<UIController> ().AddScore (); } Instantiate (explosionPrefab, transform.position, Quaternion.identity); Destroy (gameObject); } }

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

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

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

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

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

bookspace

2019/07/12 07:13

現在書いているコードを追加しました
guest

回答1

0

下記の公式チュートリアルに「エネミーのHP、弾の攻撃力、アニメーションの追加」という項目がありますので、そちらを参考にしてみてください。

2Dシューティング
https://unity3d.com/jp/learn/tutorials/projects/2d-shooting-game-jp

投稿2019/07/12 07:00

nskydiving

総合スコア6500

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

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

bookspace

2019/07/12 07:08

そのサイトにある 「//ヒットポイントを減らす  hp = hp - bullet.power;」 のbullet.powerがよくわからないのですがこれは何でしょうか?
nskydiving

2019/07/12 07:12

bullet.power は「弾の攻撃力」ですね。
bookspace

2019/07/12 07:22

弾のほうに「public int power = 1;」を追加し、敵のほうに 「hp = hp - bullet.power; if(hp <= 0 ) {   Destroy (gameObject); } を入れているのですがエラーが出てしまいます このbullet.powerはプログラムの名前なのかTagなのかと思っているのですが何でしょうか?
nskydiving

2019/07/12 08:06

bullet.power はサイトに書かれている通りですが、以下のように定義されているメンバ変数です。 // 弾のPrefab public GameObject bullet; // 攻撃力 public int power = 1; また、エラーを解消するには、エラーメッセージを読んでください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問