WebGL
Unity

Unity WebGLでのVideoPlayerがうまく再生できないとき

More than 1 year has passed since last update.

VideoPlayerが動かない!!

たぶんこのページを開かれたということは、WebGLでvideoPlayerがうまく動かなくてお悩みのことだろうと思われます。
結論だけ書くと

ネット上に動画ファイルを置いて、urlから開いて

VideoPlayerのロードを待つスクリプトを書きましょう!!

なぜこのような事態が起きるか

まず、Unity 5.6からある、VideoPlayerはMP4ファイルを読み込んでくれる神機能ですが
マルチプラットフォーム対応の際どうしても対応状況に差が出てしまっているようです...

Videoclipを埋め込んだ時に再生できない問題

どうやら仕様らしいです、あきらめましょう
(ここに書いてある、ドキュメント見忘れたって書いてあるけどそんな記述あったかなぁ...)

Urlから開いても再生されない問題

本来仕様ではローディングが終わってから再生されるはずなんですが、どうやらバグっているのかその前に開こうとしてエラーをはいてる感じでした。
なので、追加でスクリプトを書きましょう

VideoLoader.cs
[SerializeField] string url;
#if UNITY_WEBGL
    void Start()
    {

        var videoPlayer = GetComponent<VideoPlayer>();
        videoPlayer.source = VideoSource.Url;
        videoPlayer.url = url;
        videoPlayer.prepareCompleted += PrepareCompleted;
        videoPlayer.Prepare();
    }
    void PrepareCompleted(VideoPlayer vp)
    {
        vp.prepareCompleted -= PrepareCompleted;
        vp.Play();
    }
#endif

こんな感じで書いて、VideoPlayerにアタッチしてくださいこれでおそらく動きます。