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

回答編集履歴

1

補足

2019/09/03 04:17

投稿

hogefugapiyo
hogefugapiyo

スコア3307

answer CHANGED
@@ -9,4 +9,36 @@
9
9
  // インスタンス化したオブジェクトのSortingOrderをカウンターの値にする(新しいものが数値が大きい)
10
10
  obj.GetComponent<SpriteRenderer>().sortingOrder = counter;
11
11
 
12
+ ```
13
+
14
+ ソースを見る感じだと画像を作るメソッドをわけて、配列からランダムにPrefabを選ぶというアプローチでも良さそうです。
15
+
16
+ ```cs
17
+ using System.Collections;
18
+ using System.Collections.Generic;
19
+ using UnityEngine;
20
+ using UnityEngine.SceneManagement;
21
+
22
+ public class Test : MonoBehaviour {
23
+
24
+ [SerializeField] GameObject[] imagePrefabs;
25
+ private int counter;
26
+
27
+ void Update() {
28
+ if (Input.GetMouseButtonDown(0)) {
29
+ var pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
30
+ pos.z = 0; // カメラ位置調整用
31
+ CreateImage(pos);
32
+ }
33
+ }
34
+
35
+ private void CreateImage(Vector3 pos) {
36
+ var _prefab = imagePrefabs[Random.Range(0,imagePrefabs.Length)];
37
+ var newObj = Instantiate(_prefab,pos, _prefab.transform.rotation);
38
+ newObj.GetComponent<SpriteRenderer>().sortingOrder = counter;
39
+ counter++;
40
+ }
41
+
42
+ }
43
+
12
44
  ```