【Unity】二次元配列のコピーや初期化

2048のバグを修正しているのですが、 上手く行きません。(ToT )( ToT) ウルウル バグの修正をするよりもシステム自体を作り直す方が早い? と思いまして、一から作り直しています。 新しいシステムが機能するといいのですが… 2048の事は、この辺で置いといて 配列について、調べた事があるので記事にしてみます。 2048のスクリプトでも、二次元配列の初期化を行ったのですが、 forループで0を代入する方法でした。 どうやらコマンドがあるようで、初期化やコピーが出来るみたいです。 知っている方からすれば今更なんですが、 今まで存在すら知りませんでした。(~-~;)ヾ(-_-;) オイオイ ループで処理する事には、問題ないのですが、 ループとコマンドで処理速度を比較されているサイトを見ると コマンドで処理する方が早いようです。 なので、コマンドを使えるように勉強したいと思います。 変数のコピーは、 int A=10; int B=5; A=B; これでAに5が代入されて Bの値がコピーされました。 この後、Bに新しい数値を代入してやれば、 B=2; Debug.Log(A); Debug.Log(B); コンソールには、5と2が表示されます。 配列で同じ事をしてみます。 int[]A=new int[5]; int[]B={1,2,3,4,5}; …

続きを読む

【Unity】2048 操作系でバグが発生

ピース生成の際にバグが発生しておりましたが、 コルーチンを修正して、ピース生成後に フリック入力を復帰できるように修正しました。 これでOKと思っていたのですが… PC上でテストをしていると違うバグが発生し始めました。 マウスをカチカチと連打しながらフリックしていると Consoleにエラーの表示が… 座標の読み取りでIndexOutOfRangeExceptionのエラーです。 ピースの移動時にポジションを消去するのですが、 消去後の座標を読み取ると計算コードが狂ってしまいます。 フリック入力時にピース配列を読み取っているのですが、 この部分で座標の読み取りを失敗しているようです。 //フリックが入力中か判断する if (input) { return; } //タッチの始点を取得 if (Input.GetKeyDown(KeyCode.Mouse0)) { touchStartPos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, …

続きを読む