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

質問編集履歴

2

現状が進展したので質問を更新しました

2020/04/29 10:01

投稿

kidaer
kidaer

スコア31

title CHANGED
File without changes
body CHANGED
@@ -1,27 +1,72 @@
1
- 並列処理のやり方知りたいです。
1
+ シーン1変数を変更したときに、シーン2のテキストコメント自動で変更する仕組みにしたいです。
2
2
 
3
- シーン1ボタンを押すとランダム数値(数)決まりま
3
+ 以下状態テキストが自動更できることわかりました
4
- その変数をシーン2に引き継ぎます。
5
4
 
5
+ ```ここに言語を入力
6
+ using System.Collections;
6
- Image1をifでフラグ分けして、変数1が1の時には画像1、2の時には画像2が出るようにします。
7
+ using System.Collections.Generic;
8
+ using UnityEngine;
9
+ using System;
7
- テキスト1をifでフラグ分けし、変数1が1の時にはコメント1、2の時にはコメント2が出るようにします。
10
+ using UnityEngine.UI;
8
11
 
9
- シーン2のボタン1を押してランダムで数値を出します。
10
- この数値をシーン1に上書きするとして、この上書きした値を元にImage1、テキスト1が自動的に内容を変えるようにしたいです。
11
12
 
12
- ===============================
13
+ public class 文字変数 : MonoBehaviour {
13
- 【追記】
14
- 今回この質問をしたのは、そもそもunityだと並列処理をどうすればいいのか検討もつかないからです(ぐぐったのですがわかりやすい記事がありませんでした)。
15
14
 
16
- ウディタだと確かフラグ管理の関係で並列処理の機能があって、登録するだけで変数を監視して随時変更するというものが使えていたような気がします。unityにはそういう機能がなく、自分でイチから組むしかないのでしょうか?
15
+ public GameObject score_object = null; // Textオブジェクト
16
+
17
+ // 初期化
18
+ void Start () {
19
+ }
20
+
21
+ // 更新
22
+ void Update () {
23
+ // オブジェクトからTextコンポーネントを取得
17
24
 
18
- そうすると、どうやって組めばいいのでしょうか?
25
+ int b = titleJup.aaa;
19
26
 
20
- ループは回数制限もありますしちょっと違う気がします(無限ループはバグるはずですし)
21
- 要はIFによりImageやコメントを変更する処理を何度でも呼び出せればいいのかなと思うのですが、それもまた並列処理とちょっと違う気がします。
22
- それとも、いちいちボタンを押してImageを変更させるという手順が必要になるのでしょうか?
23
- 変数を監視して自動的に画像を変えるという処理は不可能なのでしょうか?
24
- 非同期処理はあくまで処理が同時進行するけども、変数の監視自体はしてくれないのでやっぱりちょっと違う気がします。
25
27
 
28
+ Text score_text = score_object.GetComponent<Text> ();
29
+
30
+ if (b == 1) {
31
+ // テキストの表示を入れ替える
32
+ score_text.text = "aaaaa"; }
33
+
34
+ }
35
+ }
36
+ ```
37
+ 上記を真似てImageもできないかやってみたのですが、再生ができなくなってしまいました。
38
+ ```ここに言語を入力
39
+ using System.Collections;
40
+ using System.Collections.Generic;
41
+ using UnityEngine;
42
+ using System;
43
+ using UnityEngine.UI;
44
+
45
+ public class 画像変更 : MonoBehaviour
46
+ {
47
+
48
+ public GameObject Image_object = null; // Imageオブジェクト
49
+ public Sprite 偽金;
50
+
51
+ void Start()
52
+ { }
53
+
54
+ void Update()
55
+ {
56
+ int flag = titleJup.aaa;
57
+
58
+ Image Image_image = Image_object.GetComponent<Image> ();
59
+
60
+ if (flag == 1) {
61
+
62
+ Image_image.Sprite = 偽金;
63
+
64
+
65
+ }
66
+
67
+ } }
68
+ ```
69
+
70
+
26
71
  どうしたらいいのでしょうか?
27
72
  よろしくお願い致します

1

追記しました

2020/04/29 10:01

投稿

kidaer
kidaer

スコア31

title CHANGED
File without changes
body CHANGED
@@ -9,4 +9,19 @@
9
9
  シーン2のボタン1を押してランダムで数値を出します。
10
10
  この数値をシーン1に上書きするとして、この上書きした値を元にImage1、テキスト1が自動的に内容を変えるようにしたいです。
11
11
 
12
+ ===============================
13
+ 【追記】
14
+ 今回この質問をしたのは、そもそもunityだと並列処理をどうすればいいのか検討もつかないからです(ぐぐったのですがわかりやすい記事がありませんでした)。
15
+
16
+ ウディタだと確かフラグ管理の関係で並列処理の機能があって、登録するだけで変数を監視して随時変更するというものが使えていたような気がします。unityにはそういう機能がなく、自分でイチから組むしかないのでしょうか?
17
+
18
+ そうすると、どうやって組めばいいのでしょうか?
19
+
20
+ ループは回数制限もありますしちょっと違う気がします(無限ループはバグるはずですし)
21
+ 要はIFによりImageやコメントを変更する処理を何度でも呼び出せればいいのかなと思うのですが、それもまた並列処理とちょっと違う気がします。
22
+ それとも、いちいちボタンを押してImageを変更させるという手順が必要になるのでしょうか?
23
+ 変数を監視して自動的に画像を変えるという処理は不可能なのでしょうか?
24
+ 非同期処理はあくまで処理が同時進行するけども、変数の監視自体はしてくれないのでやっぱりちょっと違う気がします。
25
+
12
- どうしたらいいのでしょうか?
26
+ どうしたらいいのでしょうか?
27
+ よろしくお願い致します