質問編集履歴

1

自分なりにわかりやすくしたつもりです。。。

2019/01/19 03:30

投稿

haru71
haru71

スコア11

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 敵を倒したりコインを入手ると得られるスコアの統一化
3
+ Prefab化したTextのInstantiateは可能なのか?(初心者の質問で
4
4
 
5
5
 
6
6
 
@@ -12,11 +12,83 @@
12
12
 
13
13
  UnityのC#でマリオのようなゲームを作っています。
14
14
 
15
+
16
+
15
17
  キャラクターがフラワーを取ったりスターを取ったりする際にプレイヤー本体を壊した後にResourceファイルのなかのPrefabsファイルから新しいキャラクターのプレファブを呼び出す。ということを行なっています。
16
18
 
17
- その時にHPやスコアがリセットされてしまう。という問題と、HPやスコアのテキストがゲームのシーンに適応されない(コインをとってもScore:0のまま、ダメージを受けてもHP表示が変わらないなど)ということに気づきました。
18
19
 
19
20
 
21
+ そのためPrefabのInspectorにPrefab化したTextを入れているという状況です。実際にScoreの記録はうまくいっています。
22
+
23
+
24
+
25
+ そこでProgectのPrefabに記録されているTextのPrefabのScoreをGame上に表示しようと思った。というところまでが前提となっています。
26
+
27
+ using System.Collections;
28
+
29
+ using System.Collections.Generic;
30
+
31
+ using UnityEngine;
32
+
33
+ using UnityEngine.UI;
34
+
35
+
36
+
37
+ public class ScoreScript : MonoBehaviour {
38
+
39
+ //このスコアオブジェクトの欄にPrefab化したTextを入れています。
40
+
41
+ public static GameObject score_object = null;
42
+
43
+ //スコアです。
44
+
45
+ public static int score_num = 0;
46
+
47
+
48
+
49
+ // Use this for initialization
50
+
51
+ void Start () {
52
+
53
+
54
+
55
+ }
56
+
57
+
58
+
59
+ // Update is called once per frame
60
+
61
+ void Update () {
62
+
63
+ Text score_text = score_object.GetComponent<Text>();
64
+
65
+ score_text.text = "Score:" + score_num;
66
+
67
+ }
68
+
69
+
70
+
71
+ private void OnTriggerEnter2D(Collider2D collision)
72
+
73
+ {//ここから下はそれぞれのスコア加算量であり本題には関わりがないと思われるので割愛させていただきます。
74
+
75
+
76
+
77
+ スコアのスクリプトは上のようになっています。スコア自体の加算はうまくいっておりこのスクリプトに問題はないと自分では考えています。
78
+
79
+ そのあと。
80
+
81
+ PrefabになっているTextにしっかりとスコアは加算されているのでそれをGame上に表示したい。と考えたので
82
+
83
+ GameObject obj = (GameObject)Resources.Load("ScoreText");
84
+
85
+ GameObject instance = (GameObject)Instantiate
86
+
87
+ (obj,new Vector3(0.0f, 0.0f, 0.0f),uaternion.identity);
88
+
89
+ このようなスクリプトを空きのGameObjectにつけています。
90
+
91
+ その時にエラーが発生してしまいまして、結局一日粘ったのですがこれが解決できずに。。。ということで質問させていただく次第です。
20
92
 
21
93
 
22
94
 
@@ -26,7 +98,7 @@
26
98
 
27
99
  ```
28
100
 
29
- エラーメッセージ
101
+ The object you want to instantiate is null.
30
102
 
31
103
  ```
32
104
 
@@ -36,11 +108,17 @@
36
108
 
37
109
 
38
110
 
39
- ```ここに言語名を入力
111
+ c#
40
112
 
41
113
  ソースコード
42
114
 
115
+ GameObject instance = (GameObject)Instantiate(obj,
116
+
117
+ new Vector3(0.0f, 0.0f, 0.0f),
118
+
43
- ```
119
+ Quaternion.identity);
120
+
121
+
44
122
 
45
123
 
46
124
 
@@ -48,9 +126,9 @@
48
126
 
49
127
 
50
128
 
51
- ここに問題に対してしたことを記載してださい。
129
+ とりあえず他の自分が知ってるPrefabのInstance化をしてみました。うまくいきませんでした。。
52
130
 
53
-
131
+ 自分で言うのもなんですが知識が貧弱なものでウェブサイトを漁りまくってみましたが自分の状況を打破できるものがヒットしませんでした
54
132
 
55
133
  ### 補足情報(FW/ツールのバージョンなど)
56
134