スイカゲーム風「ベジタブルゲーム」の作り方、5回目です。
今回はクレーンが野菜を離したときに、閉じているクレーンの画像から開いたクレーンの画像に切り替わる処理を行います。今回の動きはゲームの流れ、シナリオには影響しませんので、スキップして頂いても結構です。
「ベジタブルゲームの作り方」その他の記事はこちらから
クレーン のリリースアニメーション
素材配列の用意
新たにSprit型の配列を用意します。
配列名 | 型 | アクセス | 説明 |
craneImg | Sprite | [SerializeField] | アームが閉じたクレーンの画像と開いた画像 |
また、SpriteRendererコンポーネントを操作するので、その変数も用意します。
変数名 | 型 | アクセス | 説明 |
sr | SpriteRenderer | private | SpriteRendererコンポーネント型の変数 |
CraneCintroller にプログラムを追記します。
[SerializeField] Sprite[] craneImg; //クレーンの画像配列
SpriteRenderer sr; //SpriteRenderer型の変数
void Start()
{
//記載済みコード省略
sr = GetComponent<SpriteRenderer>(); //SpriteRendererコンポーネントを取得し代入
sr.sprite = craneImg[0]; //画像 の初期値を閉じたクレーン画像に
}
Crane の Inspectorで宣言した配列の1番目にクレーンの閉じた画像、2番目に開いた画像をそれぞれセットします。
画像変更のプログラム
クレーンは通常閉じていて、野菜を離した瞬間に開き、0.5秒後に閉じるといったフローになります。時間を管理するのでコルーチンで作成します。
IEnumerator CraneOpen()
{
sr.sprite = craneImg[1]; //開いた画像
yield return new WaitForSeconds(0.5f); //0.5秒待機
sr.sprite = craneImg[0]; //閉じた画像
}
作成した関数は、作成済みの 関数:Release(InputAction.CallbackContext context) で野菜を離したタイミングで発動します。
public void Release(InputAction.CallbackContext context)
{
/*前半記述済み
if (context.performed && transform.childCount == 1)
{
//省略 if( 省略 )
{
//省略
StartCoroutine(tray.transform.GetChild(0).
GetComponent<VegetableManager>().SetCrane());ここまで述済み*/
StartCoroutine(CraneOpen()); //コルーチンの呼び出し
}
}
}
これでクレーンのアニメーションが完成しました。
ファイブボックスでは、Unityの個別指導のオンラインレッスンを行っています。
ご興味のある方は当サイト、オンラインレッスンから、無料体験授業へお問い合わせ下さい。