はじめに
アニメーションGIFプレーヤでは、デスクトップとモバイルでアニメーションGIFを再生できます。
デモムービー - 短いチュートリアル
アニメーションGif Playerコンポーネントをgameオブジェクトに追加し、GIFファイルを選択して、再生を押してください。
主な特徴
スクリプトを必要とせずに使いやすい
-GIFはパフォーマンスを向上させるために別のスレッドでデコードすることができます
- 純粋なC#のソリューション、余分なプラグインのインストールや編集が不要
コメント付きのソースコードが含まれています - MovieTextureの代わりとしての短いビデオクリップには便利です
デバイスとウェブの両方からGIFを読み込む
動作環境
Mac 10.13.6
Unity 2018.2.5f1
Animated GIF Player 1.13.4
#使い方
アセットをインポートしてきたら、
gifを貼りたいオブジェクトをシーン上の配置してください
それでAddComponentで「AnimatedGifPlayer」を追加してください
追加で一つ注意としては必ず「RawImage」「MeshRenderer」「SpriteRenderer」コンポネーントのどれか一つ入っているオブジェクトに追加してください
シェーダーは特に差し替えなくても大丈夫です
次にAnimatedGifPlayerのSelectGIFを押して、Gifを選択します。
Gifの格納場所は必ず「StreamingAssets」フォルダに格納して参照しましょう
あとは再生して上げれば再生されるはずです
ちなみアルファにも対応されています
AnimatedGifPlayerパラメーター

項目 | 内容 |
---|---|
Loop | これをtrueに設定すると、GIFループが作成されます(デフォルト:true) |
AutoPlay | 初期化時にGIFの再生を開始するには、これをtrueに設定します。 |
FileName | StreamingAssetsフォルダ内のGIFのファイル名 SelectGifで直接参照できます |
ThreadedDecoder | 有効にすると、プレーヤーは別のスレッドで各GIFフレームをデコードしますパフォーマンスを向上させます。 (デフォルト:有効) |
CacheFrames | 有効にすると、デコード後に各フレームがメモリにキャッシュされます。 デコードはやや遅くなります。 これは、GIFをループするときに使用し、デコーダの実行を維持したくない場合に使用します。(デフォルト:無効) |
BufferAllFrames | 有効にすると、すべてのフレームがロードされ、キャッシュされます GIFプレーヤーが初期化されます。 起動は少し遅くなります。なぜなら、再生はすべてのフレームデコードされる。 無効にすると、必要に応じて各フレームがデコードされます。 (デフォルト:無効) |
OverrideTimeScale | Gifの再生速度をTime.timeScaleから独立して設定します |
PlaybackSpeed | 再生速度 |
スクリプト制御
アセットに入っているサンプルコードCodeExample.csを解説
初期化で再生したいGifをAnimatedGifPlayerにセットして、Play,Pauseができる簡単なサンプル
using UnityEngine;
using UnityEngine.UI;
using OldMoatGames;
public class CodeExample : MonoBehaviour {
//gifプレイヤー
private AnimatedGifPlayer AnimatedGifPlayer;
//再生ボタン
public Button PlayButton;
//停止ボタン
public Button PauseButton;
public void Awake() {
// AnimatedGifPlayer取得
AnimatedGifPlayer = GetComponent<AnimatedGifPlayer>();
// StreamingAssetsフォルダのファイル名指定
AnimatedGifPlayer.FileName = "AnimatedGIFPlayerExampe 3.gif";
// 自動再生を無効にする
AnimatedGifPlayer.AutoPlay = false;
// GIFが再生準備ができているときに再生を開始する準備完了イベントを追加する
AnimatedGifPlayer.OnReady += OnGifLoaded;
// ロードに失敗した場合の準備完了イベントを追加する
AnimatedGifPlayer.OnLoadError += OnGifLoadError;
// GIFプレーヤーを初期化する
AnimatedGifPlayer.Init();
}
private void OnGifLoaded() {
PlayButton.interactable = true;
Debug.Log("GIF size: width: " + AnimatedGifPlayer.Width + "px, height: " + AnimatedGifPlayer.Height + " px");
}
private void OnGifLoadError() {
Debug.Log("Error Loading GIF");
}
//再生
public void Play() {
// GIFの再生を開始する
AnimatedGifPlayer.Play();
// 再生ボタンを無効にする
PlayButton.interactable = false;
// 一時停止ボタンを有効にする
PauseButton.interactable = true;
}
//停止
public void Pause() {
// GIFの再生を停止する
AnimatedGifPlayer.Pause();
// 再生ボタンを有効にする
PlayButton.interactable = true;
// 一時停止ボタンを無効にする
PauseButton.interactable = false;
}
public void OnDisable() {
AnimatedGifPlayer.OnReady -= Play;
}
}