unity3d レベル1 -22ページ目

unity3d レベル1

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

アプローチ1.FPS値を計りたい

------------------------------------------------------------------

var count : int;//Updateの回数
var countGui :int;//1秒後のcountの数
var flg : int;//FPS計るフラグ(スイッチ(ボタン))

function Start(){
Application.targetFrameRate = 60;//フレーム制限FPS60
}

function Update () {

count += 1;
if(Input.GetKeyDown("a")){ //"a"押したらFPS値計るフラグ
count = 0;
flg = 1;
}


if(flg == 1) countEve();
}


function countEve(){
flg = 0;
yield WaitForSeconds(1);//1秒経ったら
countGui = count;//countGuiにUpdate回数を更新
count = 0;//Update回数リセット
flg = 1;//繰り返すフラグ
}

function OnGUI(){
GUI.Label(Rect(0,0,200,20),"FrameRate : " + Application.targetFrameRate);//FPS制限値
GUI.Label(Rect(0,20,200,20),"スコア : " + countGui);//現在のFPS値(Update回数
}

-----------------------------------------------------------------

UnityってFPS値表示できないの?
分からなかったので自分のスキルでやってみた。
無駄に長い気がするけど、エディター上だと最初のシーンは読み込む前に実行されるので
指定のキーを打ったら計測するようにした。


まずUnityで

Edit→projectSettings→Quality→Good→VSync Count→Dont't Sync

にしておく。

こうしないと自分でFPS制限できない?


たしかFPS値=Update回数なのでUpdateの時に"count"って変数に+1してる
1秒経ったらその時のcount数を画面に表示して"count"リセット。
ってのをやってるつもり。
これで1秒毎にUpdate回数がわかる。

実行してみた。



unity3d レベル1

unity3d レベル1



Bandicamというソフトを使ってる。
これは録画ソフトだけど、ゲームのFPSを表示したり、FPSを制限したり出来る優れもの。
上の画面は制限なし
下の画面はFPS30に制限
若干タイミングがおかしいのか? 数字が+2多く表示される。
制限なしありで誤差が同じなので、これでいいかな?

つまり、FPSが下がる(フレーム落ち)時にスコアを下げるようになる。

これを利用して
(スコア / targetFrame) * 100
みたいに点数形式にすればベンチマークみたいのが出来るのかなあ。


あとは、FF14のベンチマークのようにリアルタイムレンダでシーンを流すか、
クリックするたびに何かポリゴンやキャラクターを増やして、どこまで耐えれるかみたいな・・・。


unity3d レベル1

キャラステータスの背景用に描いてみたソウルジェム。

これをどう活かそうか…。

ゲームのインターフェース作りの基礎を学びたい!

unity3d レベル1


見やすいようにと5区間ぐらいずつに分けてタグを追加していった。

Elementが0~35まであるけど実際使ってるのは20ちょい?

前回何も考えず作っていって後悔したので、今回は見やすくなったけどこの使ってない部分が無駄に見えて嫌だな。

ゲームオブジェクトの属性?(colliderとかrigidbodyとかscriptとか)もそうだけど、見やすいように整理したくなる。

ゲームに関係なさそうだけど順番がバラバラだと非常に気になる。

積んであるコミックの巻数が途中からぐちゃぐちゃになってたり逆さになってる時みたいな。