万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

ゲーム開発者のためのAI入門

今更ながらこれを勉強中

サンプルはhttp://examples.oreilly.com/9780596005559/

deltaRow=abs(deltaRow*2); 

P15あたりの2倍する理由が不明。"2"という数字自体に意味があるのか?

currentStep = 0;

ここリセット

currentStep++;

例2-6にインクメントされてる。

fractionってなにかよく分からない。さらに2倍もしてるし・・・。
nextColとnextRowなどはP14で毎回colやrowが代入されているのに意味あるのかどうか。
k開始の名前は、グローバル定数らしい。kMaxPathLengthはサンプルでは30であった。
おそらく道筋の入れるみたい。図2-5では縦x横が15x15であったので、真っすぐ進み横に進んだ時が最大だから??

調べたら中国語サイト・・
http://blog.csdn.net/lvxiuzhi1/article/details/2559053

P16によると、”この関数が実際に経路を描画するのではない”とあり”別の関数”で行うらしい。
なんか中途半端・・

タップも取得できるマウスイベント Unity

if (Input.GetMouseButtonUp(0)) {
    
}

マウスの左ボタンを離した瞬間の処理なのだが、タップも認識してくれるようだ。


ex2Dでのアニメーション作成自分メモ Unity

1.Atlasのスプライトを作成
「Atlas(名前任意)」フォルダを生成
 ↓
そのフォルダ内で、Createメニューから「ex2D Atlas Info」を選択。
 ↓
縦x横を決定して作成。
※枚数分がきちんと入る大きさにすること!
 ↓
インスペクタでEditボタンを押下する。
 ↓
枚数分をそろえる
※2枚とも大きさがぎりぎりのテクスチャであれば、paddingを0にしないとBuildが失敗する。
※Applyボタンでは自動に詰めるので自分で調整する必要がある。

"Build"ボタンを押下


2.アニメーション(exSpriteAnimationClip)を作成
「SpriteAnimatioClips(名前任意)」フォルダを生成
 ↓
そのフォルダ内で、Createメニューから「Sprite Animation」を選択して作成。
 ↓
「Custom Sise」と「TrimTexture」と「Auto Resize」はまずチェックをオフにしておく
 ※重くなります
 ↓
インスペクタでEditボタンを押下する。
 ↓
「フレーム数」が書いている枠内で画像をドラッグする。
※1で作成結果のものではなく、1の作成元のスプライトです
 ↓
いろいろ調整して、Build(command+Sも可)
 ↓
すると勝手に1で作成されたAtlasのスプライトが完成される。


3.実際に使うGameObject作成
Hierarchy内で「Create->ex2D->Sprite AnimationObject」で生成
 ↓
「Ex Sprite Animation」項目の「Default Animation」上で2で作成したexSpriteAnimationClipを選択する。

ex2Dのすごいところ Unity

rx2DはMainカメラへ自動で合わせてくれるので、文字の大きさ・位置調整に便利。安いし。※Mainカメラが移動しても大丈夫でした。

OnGUIにあったような文字のズレがややこしい・・・がそれを解消してくれる(EzGUIでもできるかもしれないが、200ドルなのにあまり使いこなしてない。)
私は「Logo」のプレハブをProject上でcommand+Dにてコピーしてから,Hierarchyに配置して使ってます。
「Logo」プレハブにデフォルトでスクリプトが添付されておりそれでカメラを設定してくれています。


ex2Dで動的に「Ex Sprite Font」のテキストを変更したい in JS Unity

v1.1.1がデフォルトにTextにあるが、動的にJavaScript(ex2D公式ドキュメントの説明はC#)で文字を変更させたい。

↑デフォでは「v1.1.1」と書いてる


↑インスペクタのTextに文字列が格納されている


JavaScript

var titleVer = GameObject.Find("title_version");
titleVer.GetComponent(exSpriteFont).text = "hoge"; 

↑「exSpriteFont」がコンポーネント名のようなので、このようにJavaScriptで記載する。
今回はTextの文字を「hoge」にします。



↑こうなりました。「v1.1.1」から「hoge」に文字が変わります。

GameObject titleVer = GameObject.Find("title_version");
titleVer.GetComponent<exSpriteFont>().text = "hoge";

C#用のコードも一応載せる。

カメラのシェイク C# Unity

カメラをシェイクするのにこんな感じで行いたい。
InvokeRepeating("呼ぶメソッド名", 待ち時間, 繰り返し間隔秒);

InvokeRepeating("CameraShake", 10, 0.05F);

↑呼び出し元
http://unity3d.com/support/documentation/ScriptReference/MonoBehaviour.InvokeRepeating.html
これで、10秒後にシェイク開始されます


void CameraShake() {
	Vector3 eulerAngles = new Vector3( Random.Range( 0, 5 ), Random.Range( 0, 5 ), 0 );
	Camera.main.transform.localEulerAngles = eulerAngles;
}

↑呼び出し先のメソッド(実際にカメラを0〜5の幅で揺らす)


CancelInvoke("CameraShake");

止めるにはこのCancelInvokeメソッドを使います。