質問編集履歴
9
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -159,7 +159,7 @@
|
|
159
159
|
↓
|
160
160
|
「LoadingScene(LoadingSceneクラスを実行しているシーン)」
|
161
161
|
↓
|
162
|
-
「TitleScene(遷移先のシーン)」へ
|
162
|
+
「TitleScene(遷移先のシーン)」へ遷移しております。
|
163
163
|
|
164
164
|

|
165
165
|
|
8
誤字の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -159,7 +159,7 @@
|
|
159
159
|
↓
|
160
160
|
「LoadingScene(LoadingSceneクラスを実行しているシーン)」
|
161
161
|
↓
|
162
|
-
「TitleScene(遷移先のシーン)」への遷移
|
162
|
+
「TitleScene(遷移先のシーン)」への遷移しております。
|
163
163
|
|
164
164
|

|
165
165
|
|
7
タイトルが曖昧だったので修正しました
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
【Unity】シーンの非同期処理について
|
1
|
+
【Unity】シーンの非同期処理について(Now Loadingの機能を実装したい)
|
body
CHANGED
File without changes
|
6
説明を追加しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
ですが、ロード中に画面にロード中と書かれた画像を表示するように作成しているのですが全く表示されておらず勝手に遷移されてしまい困っております。
|
6
6
|
|
7
|
-
Debug.LogでLoadingSceneクラスの色々な部分を表示させてみましたが思うように動作していなくて個人的に原因は、
|
7
|
+
Debug.LogでLoadingSceneクラスの色々な部分を表示させてみましたが思うように動作していなくて個人的に原因は、3つのゲームオブジェクト(シーン遷移に関するゲームオブジェクト、動画関連のゲームオブジェクトと音楽関連のゲームオブジェクト)に対してDontDestroyOnLoadを行なって残るようにした為と考えたのですがその部分をコメントアウトして実行しても変わりませんでした。
|
8
8
|
|
9
9
|
ですので申し訳ないですが、どなたか原因が分かる方がいらっしゃいましたら教えて頂きたいです...
|
10
10
|
|
5
説明の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,11 +10,14 @@
|
|
10
10
|
|
11
11
|
また、周りに聞ける方もいなく独学で色々なサイトを見ながらやっているのでコルーチンやシーン遷移に関する認識がずれていたら指摘していただきたいです。
|
12
12
|
|
13
|
+
【追記】
|
14
|
+
OpeningManagerクラスとSceneControllerクラスのコードを追加しました。
|
15
|
+
|
13
16
|
### 問題
|
14
17
|
0. async.allowSceneActivation = false;
|
15
18
|
LoadingSceneクラスの行で勝手に遷移されないようにしているのに勝手にTitleSceneに遷移される。
|
16
|
-
1. 遷移する際にロード画面が出てくるはずなのにフリーズして遷移されてしまう。
|
19
|
+
1. 遷移する際にロード画面が出てくるはずなのに一瞬フリーズして遷移されてしまう。
|
17
|
-
2. whileを抜けた後の行が実行されていない。
|
20
|
+
2. LoadingSceneクラスのwhileを抜けた後の行が実行されていない。
|
18
21
|
|
19
22
|
|
20
23
|
### 該当のソースコード
|
4
説明の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
### 問題
|
14
14
|
0. async.allowSceneActivation = false;
|
15
|
-
|
15
|
+
LoadingSceneクラスの行で勝手に遷移されないようにしているのに勝手にTitleSceneに遷移される。
|
16
16
|
1. 遷移する際にロード画面が出てくるはずなのにフリーズして遷移されてしまう。
|
17
17
|
2. whileを抜けた後の行が実行されていない。
|
18
18
|
|
@@ -152,9 +152,9 @@
|
|
152
152
|
|
153
153
|
### 実行結果
|
154
154
|
実行結果は
|
155
|
-
「OpeningScene(最初に読み込まれるシーン)」
|
155
|
+
「OpeningScene(最初に読み込まれるシーン。OpeningSceneクラスとSceneControllerクラスのインスタンスを持っている)」
|
156
156
|
↓
|
157
|
-
「LoadingScene(
|
157
|
+
「LoadingScene(LoadingSceneクラスを実行しているシーン)」
|
158
158
|
↓
|
159
159
|
「TitleScene(遷移先のシーン)」への遷移を想定しております。
|
160
160
|
|
3
書式を改善しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
### 該当のソースコード
|
21
|
-
OpeningSceneでTitleSceneへ遷移させるようにす
|
21
|
+
最初に読み込まれるOpeningSceneでTitleSceneへ遷移させるように命令をだすクラス(実際には【SceneController】クラスのメソッドを実行している)
|
22
22
|
```C#
|
23
23
|
using UnityEngine;
|
24
24
|
|
@@ -29,7 +29,6 @@
|
|
29
29
|
|
30
30
|
public static bool loadTwice; // 読み込みが2回目以降か判定する
|
31
31
|
|
32
|
-
|
33
32
|
/// <summary>
|
34
33
|
/// シーンが呼ばれた際に最初に読み込まれる関数
|
35
34
|
/// </summary>
|
@@ -41,7 +40,6 @@
|
|
41
40
|
MovieManager.PlaySwitchFlg = true;
|
42
41
|
}
|
43
42
|
|
44
|
-
|
45
43
|
/// <summary>
|
46
44
|
/// 毎フレーム呼び出されるメソッド
|
47
45
|
/// </summary>
|
2
コードを追加しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -18,8 +18,90 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
### 該当のソースコード
|
21
|
+
OpeningSceneでTitleSceneへ遷移させるようにするクラス(実際に遷移させる処理では【SceneController】クラスのメソッドを実行している)
|
22
|
+
```C#
|
23
|
+
using UnityEngine;
|
21
24
|
|
25
|
+
/// <summary>
|
26
|
+
/// オープニングシーンを管理するクラス
|
27
|
+
/// </summary>
|
28
|
+
public class OpeningManager : MonoBehaviour {
|
29
|
+
|
30
|
+
public static bool loadTwice; // 読み込みが2回目以降か判定する
|
31
|
+
|
32
|
+
|
33
|
+
/// <summary>
|
34
|
+
/// シーンが呼ばれた際に最初に読み込まれる関数
|
35
|
+
/// </summary>
|
36
|
+
private void Awake() {
|
37
|
+
// 読み込みが2回目以降か?
|
38
|
+
if (loadTwice) MovieManager.instance.SetTargetCamera( Camera.main );
|
39
|
+
else loadTwice = true;
|
40
|
+
// すぐ再生させたいので再生スイッチをオンにする
|
41
|
+
MovieManager.PlaySwitchFlg = true;
|
42
|
+
}
|
43
|
+
|
44
|
+
|
45
|
+
/// <summary>
|
46
|
+
/// 毎フレーム呼び出されるメソッド
|
47
|
+
/// </summary>
|
48
|
+
private void Update() {
|
49
|
+
|
50
|
+
// 再生スイッチがON && 再生中
|
51
|
+
if ( MovieManager.PlaySwitchFlg && MovieManager.instance.MovieIsPlaying() ) {
|
52
|
+
// クリックする
|
53
|
+
if ( Input.GetMouseButtonDown(0) ) {
|
54
|
+
SoundManager.instance.PlayClickSE(0);
|
55
|
+
MovieManager.instance.StopMovie();
|
56
|
+
SceneController.instance.LoadTitle();
|
57
|
+
}
|
58
|
+
double remainingTime = MovieManager.instance.GetMovieClipLength() - MovieManager.instance.GetPlayingPoint();
|
59
|
+
// 再生時間が0.05秒を切ったら終了して次のシーンへ
|
60
|
+
if ( remainingTime < 0.05 ) {
|
61
|
+
MovieManager.instance.StopMovie();
|
62
|
+
SceneController.instance.LoadTitle();
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
```
|
69
|
+
|
70
|
+
OpeningSceneで呼び出されるクラス(実際にシーンの遷移処理は【LoadingScene】クラスが行なっている)
|
22
71
|
```C#
|
72
|
+
using UnityEngine;
|
73
|
+
using UnityEngine.SceneManagement;
|
74
|
+
|
75
|
+
/// <summary>
|
76
|
+
/// シーンの遷移をコントロールするクラス
|
77
|
+
/// </summary>
|
78
|
+
public class SceneController : MonoBehaviour {
|
79
|
+
|
80
|
+
public static SceneController instance; // シングルトンインスタンス
|
81
|
+
|
82
|
+
/// <summary>
|
83
|
+
/// シーンが呼ばれた際に最初に読み込まれる関数
|
84
|
+
/// </summary>
|
85
|
+
private void Awake() {
|
86
|
+
if (instance == null) {
|
87
|
+
instance = this;
|
88
|
+
DontDestroyOnLoad(gameObject);
|
89
|
+
} else Destroy(gameObject);
|
90
|
+
}
|
91
|
+
|
92
|
+
/// <summary>
|
93
|
+
/// タイトルのシーンをロードする
|
94
|
+
/// </summary>
|
95
|
+
public void LoadTitle() {
|
96
|
+
SoundManager.instance.PlayBGM(0);
|
97
|
+
LoadingScene.next = "TitleScene";
|
98
|
+
SceneManager.LoadScene("LoadingScene");
|
99
|
+
}
|
100
|
+
}
|
101
|
+
```
|
102
|
+
|
103
|
+
実際にLoadingSceneからTitleSceneへ遷移させるクラス
|
104
|
+
```C#
|
23
105
|
using System.Collections;
|
24
106
|
using UnityEngine;
|
25
107
|
using UnityEngine.SceneManagement;
|
1
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
現在Unityでシーンを非同期でロードして遷移する処理を作成しています。
|
4
4
|
|
5
|
-
ですが、ロード中画面にロード中と書かれた画像を表示するように作成しているのですが全く表示されておらず勝手に遷移されてしまい困っております。
|
5
|
+
ですが、ロード中に画面にロード中と書かれた画像を表示するように作成しているのですが全く表示されておらず勝手に遷移されてしまい困っております。
|
6
6
|
|
7
7
|
Debug.LogでLoadingSceneクラスの色々な部分を表示させてみましたが思うように動作していなくて個人的に原因は、2つのゲームオブジェクト(動画関連のゲームオブジェクトと音楽関連のゲームオブジェクト)に対してDontDestroyOnLoadを行なって残るようにした為と考えたのですがその部分をコメントアウトして実行しても変わりませんでした。
|
8
8
|
|