teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

質問内容の修正

2019/09/24 04:11

投稿

yoshiteru21
yoshiteru21

スコア44

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,70 @@
1
1
  敵にpublic flootを用いてInspectorでHPを設定できるようにし、HP=0になれば破壊するというスクリプトを作成しました。
2
2
  破壊して、同じスクリプトを付けた敵を攻撃した際にHP=0のままのため、すぐに破壊されます。
3
- HPをInspectorで設定した値に戻すにはどのようにすればよろしいのでしょうか?
3
+ HPをInspectorで設定した値に戻すにはどのようにすればよろしいのでしょうか?
4
+
5
+ Enemy_HPに値を設定しています。
6
+ こちらプレイヤーに付けているアクションのスクリプトの一部です。
7
+ ``` void OnTriggerEnter2D(Collider2D col)
8
+ {
9
+ //敵の時オブジェクトを破壊
10
+ if (col.gameObject.tag == "Enemy")
11
+ {
12
+ if (Action1)
13
+ {
14
+ enemy1script.Enemy_HP -= 10;
15
+ }
16
+ else if (Action2)
17
+ {
18
+ enemy1script.Enemy_HP -= 20;
19
+ }
20
+
21
+ if (enemy1script.Enemy_HP <= 0)
22
+ {
23
+ EnemyDestroy = true;
24
+ Debug.Log("damage");
25
+ // Instantiate(explosion, col.gameObject.transform.position, col.gameObject.transform.rotation);
26
+ }
27
+ }
28
+
29
+
30
+ }
31
+ コード
32
+ ```
33
+ こちら破壊され、アイテムを出現させるスクリプトの一部です。
34
+ ``` private void OnTriggerEnter2D(Collider2D col)
35
+ {
36
+ if(col.gameObject.tag == "UnityChan")
37
+ {
38
+ if(actionscript.EnemyDestroy == true)
39
+ {
40
+ // if (Random.Range(0, 1) == 0)
41
+ // {
42
+ Debug.Log("asaa");
43
+ Instantiate(explosion, gameObject.transform.position, gameObject.transform.rotation);
44
+ Destroy(gameObject);
45
+ Instantiate(item, gameObject.transform.position, gameObject.transform.rotation);
46
+ if (ItemDrop == "Tue")
47
+ {
48
+ Tue = true;
49
+ }
50
+ else if (ItemDrop == "Soard")
51
+ {
52
+ Soard = true;
53
+ }
54
+ else if (ItemDrop == "Gun")
55
+ {
56
+ Gun = true;
57
+ }
58
+ actionscript.EnemyDestroy = false;
59
+ // enemy1script.Enemy_HP = 100;
60
+ // }
61
+ }
62
+
63
+ }
64
+ }
65
+ コード
66
+ ```
67
+ まず、アクションのスクリプトにてHPを減らし、アイテムのスクリプトにて0以下になれば破壊、アイテムを出現させるというものです。
68
+ アイテムのスクリプトにてenemy1script.Enemy_HP=100;で無理やりHPを初期値に戻しましたが、こちらを
69
+ enemy1script.Enemy_HP=Inspectorで設定した値
70
+ にするにはどうすれば良いのでしょうか?