1月2日2 分

スイカゲーム風「ベジタブルゲーム」の作り方 Vol.05

最終更新: 1月15日

スイカゲーム風「ベジタブルゲーム」の作り方、5回目です。

今回はクレーンが野菜を離したときに、閉じているクレーンの画像から開いたクレーンの画像に切り替わる処理を行います。今回の動きはゲームの流れ、シナリオには影響しませんので、スキップして頂いても結構です。

ユニティルーム サンプルの投稿ゲーム

https://unityroom.com/games/fivebox_vegetable01

クレーン のリリースアニメーション

5.1 素材配列の用意

新たにSprit型の配列を用意します。

また、SpriteRendererコンポーネントを操作するので、その変数も用意します。

CraneController.cs

[SerializeField] Sprite[] craneImg; //クレーンの画像配列
 
SpriteRenderer sr;  //SpriteRenderer型の変数
 

 
void Start()
 
{
 
//記載済みコード省略
 
sr = GetComponent<SpriteRenderer>();   //SpriteRendererコンポーネントを取得し代入
 
sr.sprite = craneImg[0];               //画像の初期値を閉じたクレーン画像に
 
}
 

Crane の Inspectorで宣言した配列の1番目にクレーンの閉じた画像、2番目に開いた画像をそれぞれセットします。

5.2 画像変更のプログラム

クレーンは通常閉じていて、野菜を離した瞬間に開き、0.5秒後に閉じるといったフローになります。時間を管理するのでコルーチンで作成します。

CraneController.cs

IEnumerator CraneOpen()
 
{
 
sr.sprite = craneImg[1];                //開いた画像
 
yield return new WaitForSeconds(0.5f);  //0.5秒待機
 
sr.sprite = craneImg[0];                //閉じた画像
 
}
 

作成した関数は、作成済みの 関数:Release(InputAction.CallbackContext context) で野菜を離したタイミングで発動します。

CraneController.cs

public void Release(InputAction.CallbackContext context)
 
{ /*前半記述済み
 
if (context.performed && transform.childCount == 1)
 
{
 
//省略
 
if( 省略 )
 
{
 
//省略
 
StartCoroutine(tray.transform.GetChild(0).
 
          GetComponent<VegetableManager>().SetCrane());
 
       上記記述済み*/
 
StartCoroutine(CraneOpen()); //コルーチンの呼び出し
 
}
 
}
 
}

これでクレーンのアニメーションが完成しました。

「VegetablGameの作り方」その他の記事はこちらから

Vol.01 環境構築

Vol.02 クレーンの作成

Vol.03 野菜の素材作成

Vol.04 野菜のプログラム

Vol.05 クレーンのアニメーション

Vol.06 野菜の進化

Vol.07 スコア管理

Vol.08 鍋の水演出

Vol.09 炎の演出

Vol.10 泡の演出

Vol.11水しぶき演出

Vol.12 スコア演出


ファイブボックスでは、Unityの個別指導のオンラインレッスンを行っています。

ご興味のある方は当サイト、オンラインレッスンから、無料体験授業へお問い合わせ下さい。

    1