【Unity】2Dシューティングを作る ~エフェクトの対応~

Unityでアニメーションの対応 unity

プレイするゲームがあっても、自分で作ればいいじゃない!

ということで Unity 初心者が「ゲームを作る」ゲームをやっていきます!

今回は「敵の死亡エフェクトの対応」の記事です

 

スポンサーリンク

内容

ワンショットアニメーション(1回アニメーションしたら消える)の対応

Unity で用意されている Animator を使用する程ではなかったので

アニメ再生用のオブジェクトを作成していきます

 

アニメーションの準備

何はともあれ画像が必要です

サンプルは1つのファイルに纏めていますが、別々のファイルに分けてもOKです

エフェクトのサンプル

 

纏めている場合は画像の分割を行いましょう

※ちなみに分割した場合、分割後のファイルをシーンに置くとアニメーションオブジェクトになります 

 

画像の用意が出来たらオブジェクトを作っていきます

 

ワンショットオブジェクトの作成

空のオブジェクトを作成して

 ・スプライトレンダラー
 ・C#スクリプト

を追加します

 

スクリプトの編集

指定フレームの経過で次のスプライトに切り替わり

最後のスプライトまで進むと勝手に消えるという単純なもの

public class OneShotAnime : MonoBehaviour
{
    [SerializeField] List<Sprite> list;     // スプライトのリスト
    [SerializeField] int animeFrame = 2;    // 次のスプライトへのフレーム

    SpriteRenderer spriteRenderer = null;   // スプライトレンダラー
    int index = 0;                          // リスト番号
    int frame = 0;                          // 今のフレーム

    void Start()
    {
        spriteRenderer = GetComponent<SpriteRenderer>();
        SetSprite(index);
    }

    void Update()
    {
        ++frame;

        if( (frame % animeFrame) == 0 )
        {
            ++index;

            if (index >= list.Count)
            {
                // 自身を消す
                Destroy(gameObject);
            }
            else
            {
                SetSprite(index);
            }
        }
    }

    // スプライトの変更
    void SetSprite(int _index)
    {
        if (spriteRenderer == null || _index >= list.Count){ return; }

        spriteRenderer.sprite = list[_index];
    }
}

 

インスペクタービューの設定

List にアニメーション画像を追加します

Anime Frame でアニメーションの速さを変更

インスペクタービューの設定

 

あとはオブジェクトをプレハブにして、

敵を消すときに Instantiate でプレハブを作成すれば完了です!

 

サンプル動画

 

さいごに

次回:ボム的なものを作る予定?

かれいど

ゲームをしたり、作ったり
色々な事に挑戦していきたい!

サッカー観戦も趣味で
主にJ1リーグを観ています。

かれいどをフォローする
unity
スポンサーリンク
シェアする

コメント