質問編集履歴
3
改変2
title
CHANGED
File without changes
|
body
CHANGED
@@ -60,4 +60,41 @@
|
|
60
60
|
|
61
61
|
どうぞよろしくお願いいたします。
|
62
62
|
|
63
|
-
###改変
|
63
|
+
###改変
|
64
|
+
```
|
65
|
+
using UnityEngine;
|
66
|
+
using System.Collections;
|
67
|
+
|
68
|
+
public class mvcam_new3 : MonoBehaviour
|
69
|
+
{
|
70
|
+
public Vector3 pos = new Vector3(-11, 0, 0);
|
71
|
+
private GameObject game_object01 = null;
|
72
|
+
private GameObject game_object02 = null;
|
73
|
+
public void Start()
|
74
|
+
{
|
75
|
+
game_object01 = GameObject.Find("Sphere100");
|
76
|
+
GameObject game_object02 = (GameObject)Resources.Load ("Prefabs/Sphere101");
|
77
|
+
Instantiate (game_object02,transform.position,transform.rotation);
|
78
|
+
}
|
79
|
+
void Update()
|
80
|
+
{
|
81
|
+
|
82
|
+
if (Input.GetKeyDown(KeyCode.Space) && pos.z < 300)
|
83
|
+
{ //spaceキーの入力があり、かつx座標が300以下の場合にという条件文
|
84
|
+
pos.z += 30; //x座標を+30する(移動する)
|
85
|
+
transform.position = pos; //位置更新
|
86
|
+
print(transform.position.z); //コンソールを開くと座標が今どこにいるのかわかるのか書いてくれる
|
87
|
+
}
|
88
|
+
else if (Input.GetKeyDown(KeyCode.Space) && pos.z >= 300)
|
89
|
+
{
|
90
|
+
pos.z = 0;
|
91
|
+
transform.position = pos;
|
92
|
+
print(transform.position.z);
|
93
|
+
game_object01.SetActive(false);
|
94
|
+
//game_object02.SetActive(true);
|
95
|
+
game_object02.SetActive(true);
|
96
|
+
//game_object02.transform.gameObject.SetActive(true);
|
97
|
+
}
|
98
|
+
}
|
99
|
+
}
|
100
|
+
```
|
2
改変したスクリプトを更新しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -58,4 +58,6 @@
|
|
58
58
|
```
|
59
59
|
このスクリプトではtransform.Findを使用していますが、非アクティブなオブジェクトを参照する事ができれば別の方法でも問題ありません。
|
60
60
|
|
61
|
-
どうぞよろしくお願いいたします。
|
61
|
+
どうぞよろしくお願いいたします。
|
62
|
+
|
63
|
+
###改変
|
1
分かり辛い表現があったので訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
カメラに割り当てたスクリプトで、カメラのz座標が300の地点まで達するまでz座標を+30し、300の地点を超えるとオブジェクトAを非アクティブにし、同時に(非アクティブの)オブジェクトBをアクティブにする。
|
5
5
|
というスクリプトを書きたいのですが、オブジェクトの取得が上手くいきません。
|
6
6
|
|
7
|
-
原因を調べてみたところ、startメソッドの時点でBox1/Sphere101の取得ができていないようです。
|
7
|
+
原因を調べてみたところ、startメソッドの時点でオブジェクトBであるBox1/Sphere101の取得ができていないようです。
|
8
8
|
|
9
9
|
非アクティブのオブジェクトを参照する為に、親オブジェクトがアクティブであれば参照が可能なtransform.Findを使用して、EmptyなオブジェクトBox1の子階層にSphere101を入れ、参照しています。__(画像参照)__
|
10
10
|
|