*

[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

関連記事

Unity_

[Unity]Unity2Dチュートリアル 同じ色で繋がったパズルを消去する ソース解説

◆全文 using UnityEngine; using System.Collecti

記事を読む

unity

[Unity]コードリファレンス GameObjectの検索と削除

検索ですので、検索対象となるCubeでも適当に置いておきます。 GameObject.

記事を読む

Unity_

[Unity]Unity2Dチュートリアル 直線で3つ同色のパズルを消去する ソース解説

◆全文 using UnityEngine; using System.Collection

記事を読む

VisualStudio_

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

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

記事を読む

Unity_

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

◆全文 public class GameSystem : MonoBehaviour {

記事を読む

unity ご祝儀

[Unity?]割り切れない関係のためのご祝儀計算シミュレータ

今日、親友が結婚します。 なので、ご祝儀を用意するんですが、相場は3万円ですね。 じゃあ、な

記事を読む

Unity_

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

前回、画面上のオブジェクトを一括で手に入れる方法はわかりました。 しかし、これではどのオブジェクト

記事を読む

Wannabenote

[Unity]Unity4.6 UIチュートリアル Lesson8.UI Transition 日本語要約

Unityまとめページはこちら。 Lesson7.UI Sliderの続き。 Transit

記事を読む

wannabenote_unity

[Unity]コードリファレンス ゲーム時間を表示する。

ゲーム内の時間を表示します。 Timeクラス 時間のためのクラスです。 ゲームが起動してか

記事を読む

Unity1_5

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

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

記事を読む

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 ↑