回答編集履歴
2
解法を見つけました。
test
CHANGED
@@ -1,13 +1,40 @@
|
|
1
|
-
|
1
|
+
GameObjectを`public`ではなく`static`で宣言した後に間接的にプレファブを参照する方法でも上手くいきました。
|
2
|
-
内部で別のオブジェクトを試しに生成したら増殖するバグが治ってなかったので
|
3
|
-
前の
|
2
|
+
`static`だと前の状態を引き継がない状態で新規に複製できる様です。
|
3
|
+
※以下、ループを抜ける処理は記載していません。
|
4
|
+
|
4
5
|
|
5
6
|
```ここに言語を入力
|
7
|
+
// GameDirector.cs
|
8
|
+
|
9
|
+
using System.Collections;
|
10
|
+
using System.Collections.Generic;
|
6
|
-
|
11
|
+
using UnityEngine;
|
12
|
+
|
13
|
+
public class GameDirector : MonoBehaviour
|
7
14
|
{
|
8
|
-
|
15
|
+
public static GameObject hueru; // staticで宣言
|
16
|
+
public GameObject hueruTemp; // インスペクタービューでプレファブを参照
|
17
|
+
void Start()
|
18
|
+
{
|
9
|
-
|
19
|
+
hueru = hueruTemp; // staticゲームオブジェクトに代入
|
10
|
-
|
20
|
+
Instantiate(hueru, transform); // 複製
|
11
|
-
|
21
|
+
}
|
12
22
|
}
|
13
23
|
```
|
24
|
+
```ここに言語を入力
|
25
|
+
// Hueru.cs
|
26
|
+
|
27
|
+
using System.Collections;
|
28
|
+
using System.Collections.Generic;
|
29
|
+
using UnityEngine;
|
30
|
+
|
31
|
+
public class Hueru : MonoBehaviour
|
32
|
+
{
|
33
|
+
GameObject hueru = GameDirector.hueru; // GameDirectorのstaticゲームオブジェクトを参照
|
34
|
+
void Start()
|
35
|
+
{
|
36
|
+
Instantiate(hueru, transform); // 2つに複製
|
37
|
+
Instantiate(hueru, transform);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
```
|
1
勘違いによる記載を修正しました。
test
CHANGED
@@ -1,11 +1,13 @@
|
|
1
|
-
以下の様に .SetParent() で後から親を指定したら
|
1
|
+
以下の様に .SetParent() で後から親を指定したら見かけ上は上手くいきましたが、
|
2
|
+
内部で別のオブジェクトを試しに生成したら増殖するバグが治ってなかったので
|
2
|
-
|
3
|
+
前の生成物の内容を引き継いだ hueru が生成されてる様です。
|
3
|
-
モヤモヤが残ります。
|
4
4
|
|
5
|
+
```ここに言語を入力
|
5
6
|
void Start()
|
6
7
|
{
|
7
|
-
GameObject obj1 = Instantiate(hueru);
|
8
|
+
GameObject obj1 = Instantiate(hueru);
|
8
|
-
GameObject obj2 = Instantiate(hueru);
|
9
|
+
GameObject obj2 = Instantiate(hueru);
|
9
|
-
obj1.transform.SetParent(transform);
|
10
|
+
obj1.transform.SetParent(transform);
|
10
|
-
obj2.transform.SetParent(transform);
|
11
|
+
obj2.transform.SetParent(transform);
|
11
12
|
}
|
13
|
+
```
|