質問編集履歴

4

誤記修正

2020/02/10 03:35

投稿

GZ_RCCK
GZ_RCCK

スコア6

test CHANGED
File without changes
test CHANGED
@@ -12,9 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- `Object = GameObject.Find(変数).GetComponent<Text>();
15
+ `Object = GameObject.Find(変数).GetComponent<Text>();`
16
-
17
- `
18
16
 
19
17
  で取得したいです。
20
18
 
@@ -24,9 +22,7 @@
24
22
 
25
23
 
26
24
 
27
- `Object = GameObject.Find("PlayerNameText").GetComponent<Text>();
25
+ `Object = GameObject.Find("PlayerNameText").GetComponent<Text>();`
28
-
29
- `
30
26
 
31
27
  (この方法であればオブジェクトの取得は可能でした。)
32
28
 

3

読みやすさ向上のため修正

2020/02/10 03:34

投稿

GZ_RCCK
GZ_RCCK

スコア6

test CHANGED
File without changes
test CHANGED
@@ -6,9 +6,15 @@
6
6
 
7
7
 
8
8
 
9
- Unityのテキストオブジェクトを
9
+ Unityのテキストオブジェクトを変数に格納されたオブジェクト名で探したいです。
10
-
10
+
11
+
12
+
13
+
14
+
11
- オブジェクト格納する変数 = GameObject.Find(探したいオブジェクト名が格納されている変数).GetComponent<Text>();
15
+ `Object = GameObject.Find(変数).GetComponent<Text>();
16
+
17
+ `
12
18
 
13
19
  で取得したいです。
14
20
 
@@ -16,7 +22,11 @@
16
22
 
17
23
  オブジェクト名でオブジェクトを探すときは以下のよう「”」で囲う方法でないとだめでしょうか。
18
24
 
25
+
26
+
19
- ObjectText = GameObject.Find("PlayerNameText").GetComponent<Text>();
27
+ `Object = GameObject.Find("PlayerNameText").GetComponent<Text>();
28
+
29
+ `
20
30
 
21
31
  (この方法であればオブジェクトの取得は可能でした。)
22
32
 

2

回答に基づき、修正箇所を追記

2020/02/10 03:34

投稿

GZ_RCCK
GZ_RCCK

スコア6

test CHANGED
File without changes
test CHANGED
@@ -120,7 +120,7 @@
120
120
 
121
121
  for(int j = 0; j < rowLength; j++)
122
122
 
123
- {
123
+ {
124
124
 
125
125
  Debug.Log(j);
126
126
 
@@ -179,3 +179,31 @@
179
179
  PlayerNameText
180
180
 
181
181
  ⇒"PlayerNameText"
182
+
183
+
184
+
185
+ ### 回答をもとに修正した内容
186
+
187
+ 修正箇所:2次元配列のもととなるテキストファイル
188
+
189
+ 修正内容:行末にタブ追加
190
+
191
+
192
+
193
+ =修正前===============================
194
+
195
+ player1(タブ)playerName(タブ)ハリル・ホジッチ(タブ)PlayerNameText
196
+
197
+ player1(タブ)playerNameShort(タブ)ホジッチ(タブ)none
198
+
199
+ player1(タブ)Job 監督(タブ)JobText
200
+
201
+
202
+
203
+ =修正後===============================
204
+
205
+ player1(タブ)playerName(タブ)ハリル・ホジッチ(タブ)PlayerNameText**(タブ)**
206
+
207
+ player1(タブ)playerNameShort(タブ)ホジッチ(タブ)none**(タブ)**
208
+
209
+ player1(タブ)Job 監督(タブ)JobText**(タブ)**

1

playerStaus の宣言箇所と代入個所の追加

2020/02/10 03:30

投稿

GZ_RCCK
GZ_RCCK

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,7 @@
1
+ **改稿 playerStaus の宣言箇所と代入個所の追加**
2
+
3
+
4
+
1
5
  ### 前提・実現したいこと
2
6
 
3
7
 
@@ -40,13 +44,131 @@
40
44
 
41
45
  ```C#
42
46
 
47
+
48
+
49
+ public class LoadPlayerStatus : MonoBehaviour
50
+
51
+ {
52
+
53
+ public string[] textMessage; //テキストの加工前の一行を入れる変数
54
+
43
- ObjectText = GameObject.Find(playerStaus[j, 3]).GetComponent<Text>();
55
+ public string[,] playerStaus; //プレイヤーのステータスを入れる2次元は配列
56
+
57
+ Text childObjectText; //生成したPrefabのテキストを格納する。
44
58
 
45
59
 
46
60
 
61
+ private int rowLength; //テキスト内の行数を取得する変数
62
+
63
+ private int columnLength; //テキスト内の列数を取得する変数
64
+
65
+
66
+
67
+ // Start is called before the first frame update
68
+
69
+ void Start()
70
+
71
+ {
72
+
73
+ TextAsset textasset = new TextAsset(); //テキストファイルのデータを取得するインスタンスを作成
74
+
75
+ textasset = Resources.Load("PlayerStatus", typeof(TextAsset) )as TextAsset; //Resourcesフォルダから対象テキストを取得
76
+
77
+ string TextLines = textasset.text; //テキスト全体をstring型で入れる変数を用意して入れる
78
+
79
+
80
+
81
+ //Splitで一行づつを代入した1次配列を作成
82
+
83
+ textMessage = TextLines.Split('\n'); //
84
+
85
+
86
+
87
+ //行数と列数を取得
88
+
89
+ columnLength = textMessage[0].Split('\t').Length;
90
+
91
+ rowLength = textMessage.Length;
92
+
93
+
94
+
95
+ //2次配列を定義
96
+
97
+ playerStaus = new string[rowLength, columnLength];
98
+
99
+
100
+
101
+ for(int i = 0; i < rowLength; i++)
102
+
103
+ {
104
+
105
+
106
+
107
+ string[] tempWords = textMessage[i].Split('\t'); //textMessageをタブごとに分けたものを一時的にtempWordsに代入
108
+
109
+
110
+
111
+ for (int n = 0; n < columnLength; n++)
112
+
113
+ {
114
+
115
+ playerStaus[i, n] = tempWords[n]; //2次配列playerStausにタブ
116
+
117
+ }
118
+
119
+ }
120
+
121
+ for(int j = 0; j < rowLength; j++)
122
+
123
+ {
124
+
125
+ Debug.Log(j);
126
+
127
+ if (playerStaus[j, 3] == "none")//ステータス画面に表示する項目でない場合何もしない
128
+
129
+ {
130
+
131
+
132
+
133
+ }
134
+
135
+ else//ステータスタグ名が存在する場合はそのテキストを取得しステータスを格納
136
+
137
+ {
138
+
139
+ childObjectText = GameObject.Find(playerStaus[j, 3]).GetComponent<Text>();
140
+
141
+ //childObjectText = GameObject.Find("PlayerNameText").GetComponent<Text>();
142
+
143
+ childObjectText.text = playerStaus[j, 3];
144
+
145
+
146
+
147
+ Debug.Log(playerStaus[j, 2]);
148
+
149
+ }
150
+
151
+ }
152
+
153
+
154
+
155
+ }
156
+
157
+ }
158
+
47
159
  ```
48
160
 
161
+ playerStausの配列の中身
49
162
 
163
+ |PL|name|パラメータ|テキストオブジェクト名|
164
+
165
+ |:--|:--|:--|
166
+
167
+ |player1|playerName|ハリル・ホジッチ|PlayerNameText|
168
+
169
+ |player1|playerNameShort|ホジッチ|none|
170
+
171
+ |player1|Job|監督|JobText|
50
172
 
51
173
  ### 試したこと
52
174