こんにちは!ねこっちです。私は現在、MRの野球ゲームを制作しています。このゲームの進捗をBlogに記していきます
2024/11/12
現在、MRのシーンからVRのシーンに遷移させようと挑戦しています。
しかし、VRのシーンに移動するときに非常に重くなってしまい、PCでもメタクエスト3でも必ず落ちてしまいます。
現在考えている対策として以下を考えています。
非同期処理を使って(LoadSceneAsync())を使うアンロードを使う
上記の方法でもうまくシーン遷移ができなかった。
その理由は、コルーチンの呼び出しがUpdataの中に入っていたからでした。
MRのシーンからVRのシーンに遷移するのはうまくできるようになった。
コルーチンを使って、シーンが読み込まれるまで5秒間の時間を作った。その間に部屋が壊れていく演出をしたいと思う。
void updata()
{
if (OVRInput.GetDown(OVRInput.Button.PrimaryIndexTrigger, controller) && OVRInput.GetDown(OVRInput.Button.PrimaryHandTrigger) || Input.GetKeyDown(KeyCode.C))//コントローラーの任意のボタンが押されたとき
{
//SceneManager.LoadScene("VRScene");
//LoadScene();
StartCoroutine(LoadScene());
//SceneManager.UnloadSceneAsync("MRScene");
//SceneManager.LoadSceneAsync("VRScene");
}
}
private IEnumerator LoadScene()
{
if (isRunning) yield break;
var async = SceneManager.LoadSceneAsync("VRScene");//Now Loading...のUIのあるシーンに遷移する
SceneManager.UnloadSceneAsync("MRScene");
collapse = true;
async.allowSceneActivation = false;
yield return new WaitForSeconds(5);//5秒間の間にランダムで破片を生成する
isRunning = true;
async.allowSceneActivation = true;
}
コメント