unity3d レベル1 -7ページ目

unity3d レベル1

unity3dでゲーム作りはじめました。
http://knr.ifdef.jp/
twitter: @knorsUni



うpしました。
次かそのまた次ぐらいにはwebPlayer版を出したい。
プレイしてもらいたい。

http://ameblo.jp/knors/entry-11403696691.html
のコメントで教えてもらったRaderのスクリプトを試してみた。


unity3d レベル1


http://wiki.unity3d.com/index.php?title=Radar#Updated_JavaScript_Version
(これの一番上のJavaScript)

unity3d レベル1


↑の画像を敵の位置に合わせてマップに表示する。

スクリプトをメインカメラに当ててみる。

unity3d レベル1


blip:マップに表示するアイコン。
raderBG:背景マップの画像。
centerObject:マップの中心の位置?ゲームオブジェクトを追加してみた。
mapScale:マップスケール。増やすと中心から敵の位置が離れて減らすと近づく。
mapCenter:X,Y マップを表示する位置。


スクリプトでは最初blip2がないのでコピペするとエラーが出る。
これはゲームオブジェクトによって別のアイコンを追加する事が出来るので、必要あればという事だと思う。


↓その部分

//////////////////////////////////////////////////////////

function DrawBlipsForCows(){

// Find all game objects with tag Cow
var gos : GameObject[];
gos = GameObject.FindGameObjectsWithTag("Cow"); //検出するタグを変更

var distance = Mathf.Infinity;
var position = transform.position;

// Iterate through them
for (var go : GameObject in gos) {

drawBlip(go,blip2);

}
}

//////////////////////////////////////////////////////////

実際使いたい時は

//////////////////////////////////////////////////////////

function OnGUI(){
~略~

DrawBlipsForCows();
}

//////////////////////////////////////////////////////////

OnGUIの中に追加しておく。これを繰り返せば幾らでもアイコンを増やしていける。

unity3d レベル1


背景マップの大きさは

//////////////////////////////////////////////////////////

GUI.matrix = Matrix4x4.TRS (Vector3.zero, Quaternion.identity, Vector3(Screen.width / 600.0, Screen.height / 450.0, 1));

//////////////////////////////////////////////////////////
OnGUIの中のこの部分を有効にして、Screen.width / n , Screen.height / n を弄れば変わった。


アイコンの大きさは
drawBlipの中の

//////////////////////////////////////////////////////////
GUI.DrawTexture(Rect(mapCenter.x+bX,mapCenter.y+bY,2,2),aTexture);

//////////////////////////////////////////////////////////
の数字を弄れば変更できる。


位置の表示はY軸(高さ)も影響するのか高い位置に持っていけばアイコンは中心から離れていく。


※最初スクリプトをコピペした時やたらとエラーが出ました。実行したりしてるうちに消えました。あれは何だったんだろう…?unityやmonoDevelopのバージョンの違いとか?



計算の部分はさっぱりだったり。
Mathf←色んな計算式が使える?


中学生の頃の自分「sinとかcosとかどこで使うんだよwwwww」

////////////////////////////////////////////////////////////
bX=dist*Mathf.Cos(deltay * Mathf.Deg2Rad);
bY=dist*Mathf.Sin(deltay * Mathf.Deg2Rad);

////////////////////////////////////////////////////////////
見事に出てきたあああああorz
これは中心から指定のオブジェクトまでの距離を測ってるのかな?

http://ja.wikipedia.org/wiki/%E4%B8%89%E8%A7%92%E9%96%A2%E6%95%B0
(三角関数のwikipedia)

あれ、本当に中学の頃勉強したんだっけ…。全然覚えてない。




投稿しました。

>GUI作成にはなにかアセット使ってますか?
今のところ使ってないです。画面の下にあるのはプレーンにテクスチャ貼って別カメラで映してるだけだったり…


動画あげてから気付いたけど、前の動画にも新しいコメントが付いていた。ありがたいー。