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

質問編集履歴

1

記述不足で申し訳ありません\.\.\.ようは武器スクリプトが持つ攻撃力をプレイヤースクリプトがもつHPと引き算を実行したいのです!!

2017/05/23 08:20

投稿

neko990
neko990

スコア23

title CHANGED
File without changes
body CHANGED
@@ -3,13 +3,50 @@
3
3
 
4
4
 
5
5
  unityで敵オブジェクトに武器(enemyattack)を持たせてその武器に当たったらプレイヤーオブジェクトが持つint値Playerattackに武器の攻撃力が代入されてプレイヤーがもつint値HPにPlayerattackに代入された攻撃力の値に応じてHPの値が引かれていくというシンプルなコードを書いているのですが、武器オブジェクトを親にすれば以下のコードでうまく動作したのですが
6
+
7
+ プレイヤー側のスクリプトです↓↓この部分のコードは武器オブジェクトが親のままならうまくいきました。
6
8
  Playerattack = GameObject.Find("武器の名前").GetComponent<武器のスクリプト名>().enemyattack;
7
9
  HP = HP - Playerattack;
8
10
 
11
+
12
+
13
+
14
+ 武器側のスクリプトです
15
+
16
+ public int enemyattack;
17
+ // Use this for initialization
18
+ void Start()
19
+ {
20
+
21
+ }
22
+
23
+ // Update is called once per frame
24
+ void Update()
25
+ {
26
+
27
+ }
28
+
29
+ void OnTriggerEnter(Collider col)
30
+ {
31
+
32
+
33
+ if (col.gameObject.tag == "Player")
34
+ {
35
+ enemyattack = Random.Range(1, 20);
36
+ }
37
+ }
38
+
39
+
9
40
  武器オブジェクトを敵オブジェクトの子に設定したので以下の3つのコードに書き直して動作させたのですがどれもうまくプレイヤー側で受け取ることができません。
10
41
 
42
+
43
+
44
+ 下記のスクリプトはプレイヤー側に持たせたのですがどれもうまくPlayerattackの値にenemyattackの値を代入することができませんでした。
45
+
11
46
  Playerattack = gameObject.transform.Find("武器の名前").GetComponent<武器のスクリプト名>().enemyattack;
12
47
  Playerattack =transform.Find("武器の名前").GetComponent<武器のスクリプト名>().enemyattack;
13
48
  Playerattack = transform.FindChild("武器の名前").GetComponent<武器のスクリプト名>().enemyattack;
14
49
 
15
- 何かよい方法はないでしょうか?
50
+ 何かよい方法はないでしょうか?
51
+
52
+ 記述不足で申し訳ありません....