質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%

Q&A

解決済

1回答

1350閲覧

UnityのwebPlayerについて

gmy_shoto7522

総合スコア12

0グッド

0クリップ

投稿2016/06/14 07:09

Unity Personal上ではデバッグをすると画面の遷移(GetActiveSceneを使用しています)が行えますが、ビルドし、web上(FireFox)で遷移をしようとすると固まってしまいます。

Unity上ではできることがweb上でできなくなることはありますか?もしそうならプログラムが悪いんでしょうか?それとも、ただデータ量が多く、パソコンが固まってしまっているだけなのでしょうか?

アドバイスして頂けると幸いです。

コードを載せておきます。問題があれば、直すところも教えていただきたいです。

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;

public class Seni : MonoBehaviour
{ string s;
string sceneName = SceneManager.GetActiveScene().name;

// Use this for initialization void Start() { } // Update is called once per frame void OnCollisionEnter2D(Collision2D other) { //A-Bの遷移 if (other.gameObject.name == "A_B") { SceneManager.LoadScene("B");} if (other.gameObject.name == "B_A") { s = sceneName; SceneManager.LoadScene("A");} //A-Cの遷移 if (other.gameObject.name == "A_C") { s = sceneName; SceneManager.LoadScene("C"); } if (other.gameObject.name == "C_A") { s = sceneName; SceneManager.LoadScene("A"); } //E-Fの遷移 if (other.gameObject.name == "E_F") { s = sceneName; SceneManager.LoadScene("F"); } if (other.gameObject.name == "F_E") { s = sceneName; SceneManager.LoadScene("F"); } //C-Eの遷移 if (other.gameObject.name == "C_E") { s = sceneName; SceneManager.LoadScene("E"); } if (other.gameObject.name == "E_C") { s = sceneName; SceneManager.LoadScene("C"); } //A-Fの遷移 if (other.gameObject.name == "A-F") { s = sceneName; SceneManager.LoadScene("F"); } if (other.gameObject.name == "F-A") { s = sceneName; SceneManager.LoadScene("A"); } }

}

キャラクターのRigidBobyと、扉のBoxCollider2Dが触れると遷移するプログラムを組みました。
それぞれの部屋の扉の、gameobject.nameをA~Fで設定してあります。
初心者なので、つたないところも多々ありますがよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

string sceneName = SceneManager.GetActiveScene().name;

この部分の処理をStart()内に移動させてみてください。

csharp

1using UnityEngine; 2using System.Collections; 3using UnityEngine.SceneManagement; 4 5public class Seni : MonoBehaviour 6{ 7 string s; 8 string sceneName; 9 10 void Start() 11 { 12 sceneName = SceneManager.GetActiveScene().name; 13 } 14 15 void OnCollisionEnter2D( Collision2D other ) 16 { 17 18 //A-Bの遷移 19 if( other.gameObject.name == "A_B" ) 20 { 21 SceneManager.LoadScene( "B" ); 22 } 23 if( other.gameObject.name == "B_A" ) 24 { 25 s = sceneName; 26 SceneManager.LoadScene( "A" ); 27 } 28 29 //A-Cの遷移 30 if( other.gameObject.name == "A_C" ) 31 { 32 s = sceneName; 33 SceneManager.LoadScene( "C" ); 34 } 35 if( other.gameObject.name == "C_A" ) 36 { 37 s = sceneName; 38 SceneManager.LoadScene( "A" ); 39 } 40 41 //E-Fの遷移 42 if( other.gameObject.name == "E_F" ) 43 { 44 s = sceneName; 45 SceneManager.LoadScene( "F" ); 46 } 47 if( other.gameObject.name == "F_E" ) 48 { 49 s = sceneName; 50 SceneManager.LoadScene( "F" ); 51 } 52 53 //C-Eの遷移 54 if( other.gameObject.name == "C_E" ) 55 { 56 s = sceneName; 57 SceneManager.LoadScene( "E" ); 58 } 59 if( other.gameObject.name == "E_C" ) 60 { 61 s = sceneName; 62 SceneManager.LoadScene( "C" ); 63 } 64 65 //A-Fの遷移 66 if( other.gameObject.name == "A-F" ) 67 { 68 s = sceneName; 69 SceneManager.LoadScene( "F" ); 70 } 71 if( other.gameObject.name == "F-A" ) 72 { 73 s = sceneName; 74 SceneManager.LoadScene( "A" ); 75 } 76 } 77}

あとスクリプトでSceneManager.LoadScene()で呼ばれるいるシーンはBuildSettingで設定されているかを確認してみてください。

イメージ説明

投稿2016/06/14 07:47

urahimono

総合スコア714

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問