ブックマーク / posposi.blog.fc2.com (8)

  • Post Position 【Unity】 FPSとメモリ使用量を表示するスクリプト

    AllocationStatsをカスタマイズしてみた。 メモリプロファイラで見るのもいいが、手っ取り早く確認するならこっちの方が早い。 注目すべき値は ・Used Mem ・Max Used Mem の2つでほぼ十分。 C#ではガベージコレクションの走るタイミングがこちらでは分からないが、 明示的にガベージコレクションさせる事が出来る。 System.GC.Collect(); バッファの解放が上手く行っているかどうかをすぐに確かめたいなら、 その直後にこれを読んでメモリ使用量がそのサイズ分減っているかを確認すると良い。 ※ Gistへアップロードする時にTAB文字を空白に変換したので、表示時にインデントが崩れてました。 そもそもTABやら空白やらに影響されないように近いうちに修正します。

    crist18
    crist18 2015/06/19
    unity profile
  • blog-entry-213.html

    処理時間を計測する簡単な方法。 UnityのTimeクラスには Time.time と Time.realtimeSinceStartup がある。 どちらも実行してからの経過時間(s)をfloat型で持っているが、違いは 「Time.timeScaleの影響を受ける(前者)かそうでない(後者)か」 だけだ。 http://docs.unity3d.com/Documentation/ScriptReference/Time-realtimeSinceStartup.html よって、ゲーム内でのタイマーはTime.time、そうでないリアルなタイマーはTime.realtimeSinceStartupを使えば良い。 とある区間の処理時間を計測したい場合は以下のようなコードで簡単に出来る。 // 現在の経過時間を取得 float check_time = Time.realtimeSinc

    crist18
    crist18 2015/05/05
    unity time
  • Post Position 【Unity】 スレッドを使う

    Unityでスレッドを使ってみるテスト。 アプリやゲームを作っているとほぼ100%ぶつかる問題、重たい同期処理(ブロッキング処理)。 1フレームに掛かる処理が重たいと画面が引きつったように見えたり、入力の反応が無くなったりと 何かとデメリットばかりである。 世に出ている軽快なアプリはそれらを無くすためにおそらく様々な努力がなされている。 その1つとして、同期処理の非同期化はまず欠かせない。 というわけでUnityで非同期処理をしたくなったら、まず2つの手段がある。 コルーチンとスレッドだ。 この2つは同じようで実は全然違う。 各々の特徴を簡潔にまとめてみた。 コルーチン ・メインスレッドで処理される →なのでyieldで分けて処理を分散しても、その1つ1つの処理自体が重いと全体に影響する ・IEnumerator型の戻り値のメソッドである必要がある ・UnityAPIが使える スレッド

    crist18
    crist18 2015/02/17
    Unity スレッド thread
  • Post Position 【Unity】 Unity4.3のMecanimのアニメーションイベントの使い方

    Mecanimのアニメーションイベントの使い方。 Unity4.3から、Mecanimに待望のアニメーションイベント機能が追加された。 この機能は簡単に言うと、モーションの特定のタイミングにトリガーを付けられる。 「このタイミングでエフェクトを出したい!」 「足が地面につくタイミングでSEを鳴らしたい!」 といったよくやることは大体これで片付けられる、便利機能だ。 大体のゲームエンジンにはこの機能が付いている。 説明の多さの割にやることは大して多くないので、ちょっとはしょりながら 基の使い方を説明する。 今回は公式のフリーのアセット、Mecanim Example Sceneを使った。 Mecanim自体についての話は書くのがめんどくさいので省く。 このアセットのFollow Exampleシーンを開く。 「U_Character_REF」オブジェクトのキャラクターのIdle時のモーショ

    Post Position 【Unity】 Unity4.3のMecanimのアニメーションイベントの使い方
    crist18
    crist18 2015/01/24
    イベントのレシーバー
  • Post Position 【Unity】 StartCoroutine以外でコルーチンを回す方法

    コルーチンを自分で回す方法。 コルーチンは実はStartCoroutineで呼び出す以外にも走らせる方法がある。 このお題もUnityというよりはC#なのだが、 大体UnityでコルーチンというとStartCoroutineで呼ぶものという感じで定着している気がするので もっと原始的な方法を紹介したい。 方法は簡単で、 ①IEnumerator型を戻り値に持つメソッドを書く(コルーチン部分) ②IEnumerator型の変数Aに①のメソッドを代入(?)する ③AのMoveNextメソッドを呼ぶ だけでいい。 コードで書くと下記のようになる。 // Start void Start() { m_Enumerator = coOutputGaisenmon(); } // Update void Update() { if( m_Enumerator != null ) { bool ret

    crist18
    crist18 2014/09/12
    コルーチンを自分で回す。
  • Post Position 【Unity】 ScriptableObjectを使おう

    ScriptableObjectの基的な使い方について。 ScriptableObjectは、これまたあまり深く理解はしていないので的外れかもしれないが、 使ってみた感じ「全シーンで共通のリソースデータ」の作成に向いているクラス、のような気がしている。 全てのアセットファイルはこのクラスが元になっているっぽく、それをこっちでも使えるようになっている。 テラシュールさんのこのスクリプトが凄く便利で仕事でも良く使わせていただいている。 ScriptableObjectをプレハブとして出力する汎用スクリプト https://gist.github.com/tsubaki/5149402 ScriptableObjectを継承して作成したクラスを、そのままScriptableObjectのプレハブとして 出力してくれるものだが、例えばプレイヤーのデータを作る場合にこんなクラスを作ったとする。 u

    Post Position 【Unity】 ScriptableObjectを使おう
    crist18
    crist18 2014/08/22
    scriptable object。全シーンで共通のリソースデータ。
  • Post Position 【Unity】 NGUI(3.x)でUI表示+3Dも扱おう ② - Spriteの表示とピクセル等倍表示対応

    NGUIをとにかく扱ってみましょうな記事その②、表示の基編。 スプライトを表示する 前回の記事ではNGUI(v3.0.8)をインポートして、テクスチャからアトラスを作成した。 そのアトラスを使って何かUIを表示するには、NGUIでは一番スタンダードなものとしてSpriteがある。 とりあえず表示してみよう。 まずAtlasMakerからTrumpアトラスを選択した状態で、 その中にある c01 という名前のスプライトを選択。 その状態で、NGUICreate→Spriteを選択すると、 画面にトランプのスプライトが表示される。 これだけで表示は完了だ。 アトラスさえ作ってしまえば、こうしてアトラスから表示したいスプライトを選択し NGUICreate→Spriteを選択するだけで表示出来る。 ピクセル等倍にする ひとまず表示だけについてはここで置いておいて、 このNGUIのスプライト

    Post Position 【Unity】 NGUI(3.x)でUI表示+3Dも扱おう ② - Spriteの表示とピクセル等倍表示対応
    crist18
    crist18 2014/08/19
    NGUIのアスペクト比対応。
  • Post Position 【Unity】 Unityでツイートするサンプル「UnityTwiTest」(API 1.1対応)

    Unityでツイートするサンプルを作ってみた。 →GitHub : Suzeep/UnityTwiTestGit 興味位でUnityTwitter連携の事をネットであれやこれやと調べていたら、 既にフリーのアセットがあった。 Let's Tweet In Unity by YoungWook Yang -- Unity Asset Store が、動かしてみると肝心のツイートが出来ない。410 Goneと出る。 ググってみると、どうやらTwitter APIのバージョンが1.1になった事で アクセストークンの取得までは上手くいっているが、ツイート部分が動作しなくなっているようで。 POST statuses/update | Twitter Developers この辺を見て、何だURIが変わっただけじゃないか、とソースコードを書き換えて実行。 が、今度は401 Unauthorize

    crist18
    crist18 2014/08/18
    unityでツイート。
  • 1