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

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

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

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

WebGL

WebGL(ウェブジーエル)は、ウェブブラウザで 3次元コンピュータグラフィックスを表示させるための標準仕様です。

Q&A

0回答

600閲覧

UnityでWebGLビルドはできるが、プラウザ上でエラーがでて進行不能になる

tttooo

総合スコア0

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

WebGL

WebGL(ウェブジーエル)は、ウェブブラウザで 3次元コンピュータグラフィックスを表示させるための標準仕様です。

0グッド

0クリップ

投稿2022/09/07 01:10

編集2022/09/11 12:00

前提

Unityで、WebGLビルドすると、ビルドはできるのですが、画像のようなエラーがでて動かなくなります。
Unityエディターでは正常に動いています。

実現したいこと

エラーをなくして、正常に動かせるようにすること。

発生している問題・エラーメッセージ

A scripted object (probably Rotate?) has a different serialization layout when loading. (Read 32 bytes but expected 44 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?

エラー文が、データを読み取れませんでした、

The referenced script (Rotate) on this Behaviour is missing!

警告文が、そんなスクリプトは存在しません、と言っているのだと思います。

C#

1using System; 2using FlutterUnityIntegration; 3using UnityEngine; 4using UnityEngine.EventSystems; 5 6public class Rotate : MonoBehaviour, IEventSystemHandler 7{ 8 [SerializeField] 9 Vector3 RotateAmount; 10 11 // Start is called before the first frame update 12 void Start() 13 { 14 RotateAmount = new Vector3(0, 0, 0); 15 } 16 17 // Update is called once per frame 18 void Update() 19 { 20 gameObject.transform.Rotate(RotateAmount * Time.deltaTime * 120); 21 22 for (int i = 0; i < Input.touchCount; ++i) 23 { 24 if (Input.GetTouch(i).phase.Equals(TouchPhase.Began)) 25 { 26 var hit = new RaycastHit(); 27 28 Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position); 29 30 if (Physics.Raycast(ray, out hit)) 31 { 32 // This method is used to send data to Flutter 33 UnityMessageManager.Instance.SendMessageToFlutter("The cube feels touched."); 34 } 35 } 36 } 37 } 38 39 // This method is called from Flutter 40 public void SetRotationSpeed(String message) 41 { 42 float value = float.Parse(message); 43 RotateAmount = new Vector3(value, value, value); 44 } 45}

イメージ説明

イメージ説明

試したこと

Unityで正常動作確認できているシーンをWebGLビルドして、進行不能になりました。

補足情報(FW/ツールのバージョンなど)

Unity:2022.1.7 (このブランチで2021.1.28から上げました)
原因は、Unityのバージョンを2022.1.7に上げた際に何かが剥がれたのかなーと思ってます。

何かこのエラーでわかる方がいれば、教えて頂きたいです!

※CubeでRotete.csで回転をかけただけのシーンをビルドしてみて、シーンは起動しましたが、回転はしませんでした、Rotete.csが読み込めてないためだと思います。

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

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

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

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

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

fiveHundred

2022/09/07 04:18

Rotete.csがあれば、そのコードを記載してください。
Kerupim

2022/09/08 05:30

エスパー回答するなら、プレハブ(シーンに直接置かれているオブジェクトかもしれませんが)のデータに問題が発生しているのではないかなと。 ※割とよくあるので。 一度該当オブジェクトを保存しなおす、Libraryフォルダを削除してみる等してみてはどうでしょうか?
tttooo

2022/09/09 03:06

Rotetoのコードを追加しました。しかしあまりこのコードは関係ないと思います。全てのスクリプトデータがなぜか読み取れないようなので、、
tttooo

2022/09/09 03:08

Libraryフォルダを消去してもこの問題は解決しませんでした、、オブジェクトを保存し直すというのは、消して新しく作るということでしょうか?
Kerupim_Home

2022/09/11 03:00

Unityはエディタ(GUI)上で表示されているデータと内部のデータの整合性が取れなくなっていることが割と発生するので、上書き保存(適当にCtrl+S)すれば更新されて治るかもと考えていました。 ただ症状を改めてみると違う気がしています。 やはりエラーが示すように何らかのGameObjectからRoteteコンポーネントが剥がれている(Noneになっている)と考えるのが妥当だと思います。 ここで重要なのはたとえ使用していないアセットであってもだということです。 例えばResourceフォルダに存在しているアセットはビルド時にすべてのデータが1つのシリアライズファイルとしてまとめられます。 そのためどこかでのデータで問題が発生すると、それ以降の読み込みはすべて失敗します。 これはAssetBundle(Addrressables)でも似たような問題があります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問