Unity1週間ゲームジャムに参加してみた 7日目~その①

シェアする

  • このエントリーをはてなブックマークに追加

いよいよ締め切り当日です。8時まで残り12時間。間に合うのか……?!

前回、やっとこさボタンの押すタイミングで表示されるシーンを切り替えることに成功しました。
次は、GOODやGREATなど、表示された先の演出を設定していこうと思います。

作った画面の上に、ツイッターを意識したファンのメッセージを載せます。できればコレを、スライドインして表示したい。
「Unityで始めるC#」のクリア時演出を参考に、アニメーションを設定。

アニメーションを設定したいアイテムをクリックした状態で、「window」-「Animation」をクリック

「Create」をクリックして、好きな名前をつけて保存。

「Add Property」-「Transform」-Positionの「+」をクリック

あとは、赤丸のボタンを押した状態で、変更したい時間に白線を移動し、その時間にいて欲しい場所をインスペクターで設定します。

白い線の移動は、0:00とか時間が書いてある場所をドラッグすると動かせます。
ここら辺、独学っていうか、なんとなく触って動かしているので本当はやり方違うかも。
本はUnity5.4.0f3なので、だいぶ操作が違っています。unity2018も変わってるのかなぁ。覚えるの大変そうだなぁ。

ループを切るには、プロジェクトウィンドウからさっき保存したアニメーション設定をクリックして、

インスペクターの「Loop Time」のチェックボックスを外します。

3つ登録して、無事、次々評判が表示される画面が完成。

同様に、GreatとBADの画面も設定します。

ぱっと切り替わるのがかわいくなかったので、元の背景を用意しておいて、その上にフェードインで背景や文字を表示してみることに。

だけど、まだなんかぱぱっと変更になってしまうので気持ち悪い……
なので、アルファ値を変化させて透明度を変更するアニメーションを追加しました。
一番前に背景画像を配置して、ボタンを押すと徐々に現れるようにします。そうすることで、他のアイテムが消えて見える(笑)

本当はちゃんと各アイテムにフェードアウト仕掛けたかったのですが、Canvasにくっついているボタンにアルファ値が効かなかったので、一番前に設置した背景画像にアニメーションをつけました。一枚だけで済むので、設定も楽です(笑)

ボタンを押した後、フェード効果が入ってからシーン切り替えして欲しいので、Invokeというものを使って時間差でシーン切り替えのプロジェクトを読み込んでもらいます。コードはこんな感じ。

【GameScript.cs】

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement; //シーン変更の為のライブラリみたいなもの

public class GameScript : MonoBehaviour {
	public GameObject Pants;
	public Pants PantsScript;
	private float nowH;
	public Animator fade;


	// Use this for initialization
	void Start () {
		//アニメーション一時ストップ
		fade.GetComponent<Animator> ().speed = 0;

	}

	// Update is called once per frame
	void Update () {
	}

	//ボタン押したときの処理
	public void PushButton(){
		nowH = PantsScript.GetNow ();	//
		Debug.Log (nowH);

		//フェードアウトアニメーションON
		fade.GetComponent<Animator> ().speed = 1;

		//0.3秒後にシーン切り替え
		Invoke ("Scene", 0.3f);
	}


		public void Scene(){
		//縮小率によってシーン移動
		if ((nowH >= 0.47794) && (nowH <= 0.67494)) { SceneManager.LoadScene ("Clear"); //Clearのシーンに移動 } else if ((nowH >= 0.38294) && (nowH < 0.47794)) { SceneManager.LoadScene ("Great"); //Greatシーンに移動 } else if ((nowH >= 0.35955) && (nowH < 0.38294)) {
			SceneManager.LoadScene ("BAD"); //Badのシーンに移動
		} else {
			SceneManager.LoadScene ("GameOver"); //GameOverのシーンに移動
		}
		}

	}

TitleManagerにフェードをアタッチした背景画像を突っ込んで、完了です。

なかなかいい演出になったんではないでしょーかっ!
そして、今気づいたのだけど、ズボン縮小するときにベルトも一緒に細くなってるね……まぁいいか。

長くなってきたので、記事を分けます!

→Unity1週間ゲームジャムに参加してみた 7日目~その②

さて、その①で切り替えは上手く行ったものの、フェードアウトの間ズボンが下がり続けてしまうため、いまいち どの位置で止めたのかがわかり...

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

%d人のブロガーが「いいね」をつけました。