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

質問編集履歴

1

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

2019/01/19 03:30

投稿

haru71
haru71

スコア11

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