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

回答編集履歴

4

コードの修正

2021/08/17 05:38

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -37,7 +37,7 @@
37
37
 
38
38
  private void Start()
39
39
  {
40
- weaponPower = Random.Range(1, 100 + 1);
40
+ UpdateWeaponPower();
41
41
  }
42
42
 
43
43
  public void UpdateWeaponPower()

3

修正

2021/08/17 05:38

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -56,6 +56,7 @@
56
56
  {
57
57
  var weapon = GameObject.Find("obj").GetComponent<Weapon>();
58
58
  weaponDate.Add(weapon);
59
+ // 5回処理をループしたいだけなので、i は使用しない
59
60
  for (int i = 0; i < 5; i++)
60
61
  {
61
62
  weapon.UpdateWeaponPower();

2

追記

2021/08/17 05:36

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -40,7 +40,7 @@
40
40
  weaponPower = Random.Range(1, 100 + 1);
41
41
  }
42
42
 
43
- public int UpdateWeaponPower()
43
+ public void UpdateWeaponPower()
44
44
  {
45
45
  weaponPower = Random.Range(1, 100 + 1);
46
46
  }

1

追記

2021/08/17 05:33

投稿

BluOxy
BluOxy

スコア2663

answer CHANGED
@@ -23,4 +23,44 @@
23
23
  }
24
24
  ```
25
25
 
26
- 仮に同一のオブジェクトを参照したことが原因で同じ乱数が出力されるのであれば、このメソッドを利用することで解決するでしょう。
26
+ 仮に同一のオブジェクトを参照したことが原因で同じ乱数が出力されるのであれば、このメソッドを利用することで解決するでしょう。
27
+
28
+ ----
29
+
30
+ そうではなく Weapon が持つ weaponPower を5回変更したい場合はメソッドを定義して利用します。
31
+ MonoBehavior.Start はスクリプトが有効になったときに Unity 側で呼び出される特別なメソッドなので、別途ユーザが利用するためのメソッドを用意する必要があります。
32
+
33
+ ```C#
34
+ public class Weapon : MonoBehaviour
35
+ {
36
+ public int weaponPower;
37
+
38
+ private void Start()
39
+ {
40
+ weaponPower = Random.Range(1, 100 + 1);
41
+ }
42
+
43
+ public int UpdateWeaponPower()
44
+ {
45
+ weaponPower = Random.Range(1, 100 + 1);
46
+ }
47
+ }
48
+ ```
49
+
50
+ ```C#
51
+ public class WeaponList : MonoBehaviour
52
+ {
53
+ public List<Weapon> weaponDate = new List<Weapon>();
54
+
55
+ public void WeaponCreate()
56
+ {
57
+ var weapon = GameObject.Find("obj").GetComponent<Weapon>();
58
+ weaponDate.Add(weapon);
59
+ for (int i = 0; i < 5; i++)
60
+ {
61
+ weapon.UpdateWeaponPower();
62
+ Debug.Log(weapon.weaponPower);
63
+ }
64
+ }
65
+ }
66
+ ```