回答編集履歴

2

変えました

2023/01/28 16:52

投稿

TrueRyoB
TrueRyoB

スコア79

test CHANGED
@@ -8,7 +8,7 @@
8
8
  {
9
9
  if (other.gameObject.CompareTag("Player"))
10
10
  {
11
- brain.SummonME(this.gameObject);
11
+ brain.GetComponent<ItsMeBrain>().SummonME(this.gameObject);
12
12
  Destroy(gameObject);
13
13
  }
14
14
  }
@@ -30,7 +30,7 @@
30
30
  public void SummonME(GameObject object)
31
31
  {
32
32
  GameObject child = Instantiate(object, respawnMEhere, Quaternion.identity) as gameObject;
33
- child.BrainWasMe(this);
33
+ child.GetComponent<Destroy>().BrainWasMe(this);
34
34
  }
35
35
  }
36
36
  ```

1

コード書き換えました

2023/01/28 16:51

投稿

TrueRyoB
TrueRyoB

スコア79

test CHANGED
@@ -1,8 +1,5 @@
1
- 敵オブジェクトをプレハブっていうのに変えて、毎回司令室から呼び出さないとエラー起きると思います。(司令室は別のgameObjectにしてください)
2
-
3
1
  敵オブジェクトのコード
4
2
  ```c#
5
- //これは敵objectにつけてください
6
3
  public class Destroy : MonoBehaviour
7
4
  {
8
5
  private GameObject brain; //司令官のことです
@@ -28,9 +25,9 @@
28
25
  public class ItsMeBrain : MonoBehaviour
29
26
  {
30
27
  public GameObject enemy_object;//inspectorからここに敵のプレハブ入れます
31
- public transform respawnMEhere;//スポーン地点のことです
28
+ public transform respawnMEhere;//スポーン地点のことです これもinspectorから入れてください
32
29
 
33
- SummonME(GameObject object)
30
+ public void SummonME(GameObject object)
34
31
  {
35
32
  GameObject child = Instantiate(object, respawnMEhere, Quaternion.identity) as gameObject;
36
33
  child.BrainWasMe(this);
@@ -41,3 +38,7 @@
41
38
  やったこと:
42
39
  1. Destroyする前に司令室に分身を作るように依頼
43
40
  2. 司令室は分身を言われた場所に召喚
41
+
42
+ 注意:
43
+ 1. 敵オブジェクトを[プレハブ](https://xr-hub.com/archives/11132)ってのに変える必要があります。詳しくはこのサイト見てください。
44
+ 2. プレハブを直接シーンに置くのではなく、必ず司令室から召喚するようにしてください。そうしないと変数brainは空のままで、エラー起きます(多分)