*

[Unity]Unity2D 番外編 消してちょっと待つ(コルーチン利用)

公開日: : C#, Unity, ソース

>タイルを再生成するときに消えたというのがわかるように、時間をおいて生成させることは可能ですか?
というコメントをいただいたので、多分こんな感じでしょうか。

ソース

	/*
	  省略 
	*/
	void Update () {
		if(Input.GetMouseButtonDown(0)){
			LeftClick();
		}
		if(Input.GetMouseButton(0)){
			LeftDrag();
		}
		if(Input.GetMouseButtonUp(0)){
			// コルーチンを呼び出すように変更
			//LeftUp();
			StartCoroutine ("LeftUp");
		}
	}
	/*
	  省略 
	*/
	// void型でなく、IEnumeratorを戻り値とするように変更。
	private IEnumerator LeftUp(){
		bool conFlg = true;
		if(holdObj != null){
			holdObj.transform.position = new Vector3(holdPositionX, holdPositionY, z);
			holdObj = null;
		}
		SetTileSet();
		while(conFlg){
			conFlg = false;

			// ここで一秒待機
			yield return new WaitForSeconds (1.0f);

			DeleteMatchTile();
			foreach(bool deleteFlg in deleteTable){
				if(deleteFlg){
					conFlg = true;
					break;
				}
			}
			deleteTable = new bool[TileLineNum, TileColNum];
			tileTable = new int[TileLineNum,TileColNum];
		}
	}
	
	/*
	  省略 
	*/

変更した箇所

・12-14行目
メソッドを呼び出す処理からコルーチンを呼び出すように変更。

・21行目
void型を戻り値としていたのをIEnumerator型を戻り値に変更し、コルーチンにする。

・31-32行目
待機をするように処理記述。

実行すると

unity pazzle
一秒ごとに条件にあった部分が削除されていきます。

ちなみに、この削除中にタイルを動かすとおかしな動きが発生します。
ですので、実際は、クリックして、処理中はクリックを受け付けないように処理を記述しなくてはいけませんね。

それにしてもUnity勉強し始めに書いたソースだからかひどいソースだ。
直したい、けど暇がない。

ad

関連記事

logo

[C#]文字列のプロパティを初期化したい。空文字で初期化したい。

Twitterで適当に叫んでたときのネタをメモ。 C#でプロパティの初期化が面倒です。 たと

記事を読む

logo

[C#]AS400のメンバーを指定してデータにアクセスする

◆前提条件◆ CliantAccessをインストールしている。 .NET Framework3.

記事を読む

Unity_

[Unity]Unity2Dチュートリアル 画面上のGameObjectを左下から取得する ソース解説

◆全文 public class GameSystem : MonoBehaviour {

記事を読む

unity

[Unity]コードリファレンス GameObject生成

Unityをまじめに扱う必要が出てきたので、自分用のリファレンスを書いていきます。 適当にボタ

記事を読む

Unity_

[Unity]Unity4.6 UIチュートリアル Lesson2.UI Rect Transform 日本語要約

今回はUIのRect Transformの使い方。 公式はここ→http://unity3d.co

記事を読む

Wannabenote

[Unity]Unity4.6 UIチュートリアル Lesson9.UI Scroll Rect 日本語要約

Unity関連まとめページはこちら→Unity Lesson8.UI Transition 日

記事を読む

Wannabenote

[Unity]Unity2Dチュートリアル パズルを落下させる。

前回の続き。 とりあえず、パズルが消えたので、パズルを落としましょう。 以下のようにソースを

記事を読む

Unity_

[Unity]Unity2Dチュートリアル スプライトを利用する その2

前回で、タイルを置いて、全部消えちまうじゃねぇか! 色一個一個つけるのめんどくせぇ!! というところ

記事を読む

Unity1_5

[Unity]Unity2Dで3マッチパズルを作ろう~インストール編~

Unityの2D機能で3マッチパズルでも作ろうかと思ったのですが、ほとんど資料がない。Unity

記事を読む

VisualStudio_

[.NET,C#]visual studio communityで開発環境を作ってプログラムの実行まで

そういえば、visual studioのPro相当の開発環境、visual studio commu

記事を読む

ad

Message

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

ad

  •  Auther;わなび

     「オープン系得意だよね? 俺のPCの調子悪いんだけど」という無茶振りから解き放たれゲームエンジニアに。
    C#とかUnityを扱います。
    Twitterフォロー大歓迎です。
    githubアカウント→wannabenote
  • follow us in feedly
PAGE TOP ↑