回答編集履歴

1

詳細の追加

2022/09/25 11:55

投稿

pm_tera
pm_tera

スコア133

test CHANGED
@@ -2,3 +2,43 @@
2
2
  https://www.sejuku.net/blog/48180
3
3
 
4
4
  出現位置は、空のオブジェクトから取得するよりも、Vector3型配列で宣言するほうが無駄がありません。
5
+
6
+ 【追記】暇だったんで作りました
7
+ ```C#
8
+ public class Test : MonoBehaviour {
9
+ [SerializeField] GameObject _prefab;
10
+
11
+ // この座標は適当です。画面サイズに合わせて要変更。
12
+ // float型配列でX座標のみ保存してもいいかも
13
+ Vector3[] _generatePoint = {
14
+ new Vector3(-5.0f, 10.0f, 0.0f),
15
+ new Vector3(0.0f, 10.0f, 0.0f),
16
+ new Vector3(5.0f, 10.0f, 0.0f)
17
+ };
18
+
19
+ float _span;
20
+ float _time = 0.0f;
21
+
22
+ private void Awake() {
23
+ ChangeSpan();
24
+ }
25
+
26
+ private void Update() {
27
+ _time += Time.deltaTime;
28
+ if (_time > _span) {
29
+ int index = Random.Range(0, 3); // 生成する場所の決定
30
+ Instantiate(_prefab, (transform.position + _generatePoint[index]), Quaternion.identity);
31
+ ChangeSpan();
32
+ _time = 0.0f;
33
+ }
34
+ }
35
+
36
+ private void ChangeSpan() {
37
+ _span = Random.Range(1.0f, 3.0f); // 1秒から3秒おき
38
+ }
39
+ }
40
+ ```
41
+ このスクリプトをプレイヤに貼り付け、生成したいオブジェクトをインスペクターから_prefabに指定してください。
42
+ オブジェクトの出現位置は、カメラでなくプレイヤの位置を基準にしています。また、Main Cameraをプレイヤの子にすることでプレイヤを追尾させています。
43
+ あなたが前回作った、CarMoveスクリプトを併用しています。
44
+ 適当なテストしかしてないのでバグがあるかもしれません。