2013年11月30日土曜日

NGUI チュートリアルビデオ(3.0.6 対応で最新化!)

NGUI 3.0.6となり作者がまたもや新たなビデオチュートリアルを作成したため紹介する。

それにしても度重なる新機能の追加やビデオ、マニュアルを精力的に作るエネルギーはNGUI作者は「凄い!」としか言いようがない。きっと仙人か何かなんだろう(おい)

少しまとめてみたので、文章ばっかり読んで退屈するのでなく、動画でNGUIの新機能を理解していこう!

公開日: 2013/11/25


http://www.youtube.com/watch?v=F-MoYF0ZOpQ

0:00~1:00
今回は募集していた改善要望にもとづきNGUI 3.0.6に反映。特にマニュアル関連を強化


関連記事
【やったね!】NGUI作者が改善要望を広く募集中!
http://gamesonytablet.blogspot.com/2013/11/ngui.html


1:20~
コンポーネント上の右クリックによりマニュアルを表示


1:50~
マニュアルへのユーザ質問の投稿により不明点をNGUI作者へ確認できるように修正


2:30~
コントロールを選んでドラッグ&ドロップで追加できる初心者向け機能を強化
(自動的に階層まで作成)


3:30~
親子オブジェクトに対してグリッドを合わせる、端に合わせるスナップ機能を追加。スナップ機能は Ctrl キー押下によりオフが可能

4:20~
ラベルにグラデーション機能を追加

4:40~
スタイルのコピー&ペーストを右クリックメニューで実現。また過去に作成したスタイルを記憶し、次回作成するときにそのスタイルを使用

5:50~
スクロールビューの作成を強化。より簡単に作成、位置の調整をドラッグで出来るように実現。

6:40~
スクロールバーのコントロールを追加するだけでワンタッチで連動してスクロールビューをドラッグできる

別の方法としてBox Colliderなど追加するだけでスクロールビューの真上で動かす方法も紹介


7:20~
Unity4.3のUnity 2D Spriteに対応
(再生時のパッキングなどを改善、アトラスをあらかじめ作成する必要がない。Unity4.5ではスライス対応もサポート予定)

8:10~
ラベル上の文字間隔の調整を可能と
縦方向も調整できる


8:30~
ガーベージコレクションの削減によりパフォーマンスを向上
-------------------

NGUI作者はやはり凄いぜ!!!

NGUI 3.0.6 リリース

NGUI  バージョンアップ情報です:

なお、今回の大幅変更はNGUI作者が少し前に募集していた改善要望にもとづいたもの、とのこと。

関連記事

【やったね!】NGUI作者が改善要望を広く募集中!
http://gamesonytablet.blogspot.com/2013/11/ngui.html



http://www.tasharen.com/forum/index.php?topic=11.25
November 28, 2013, 03:47:44 PM

3.0.6
- 新機能: NGUI の総合ドキュメントを新たに追加
- 新機能: NGUI に豊富なコンテキスト対応のヘルプを追加。NGUI コンポーネントを右クリックして選択
- 新機能: NGUI の堅牢なコンテキスト メニューによりシーンビュー上での右クリックによりウィジェットの追加、作成、修正できる機能を追加
- 新機能: ウィジェットにスナップ配置の機能を追加。エッジ選択を親子に制限
- 新機能: シーン上にドラッグ&ドロップするだけで使用できるコントロールを様々に準備(プロジェクト ビューで "Control" と検索)
- 新機能: プロジェクト フォルダからシーンビューへ GUI プレハブをドラッグ&ドロップできる機能を追加。UI をあらかじめ作成することは不必要
- 新機能: インスペクタ上の UILabel スクリプトを右クリックすることでラベル スタイルをコピー&ペーストできる機能を追加
- 新機能: ドラッグ パネル クラスを再設計し、UIScrollView へとリネーム。UIDragPanelContents は UIDragScrollView へとリネーム。
- 新機能: ラベルにグラデーション機能を追加
- 新機能: クリップ パネルにハンドルを追加、インスペクタ上でクリッピングを調整する代わりにドラッグして動かす機能を追加
- 新機能: Unity 4.3 スプライトを描画できる新規のウィジェット タイプを追加
- 新機能: UIToggle.GetActiveToggle を追加
- 新機能: ダイナミック フォントで UILabels を使用してマテリアル指定できる機能を追加
- 新機能: ラベル上の文字間隔の調整機能を追加、ビットマップおよびダイナミックフォントの双方で動作
- 新機能: 見映えのシャープ感を維持するようセットされたラベルが UIRoot のサイズを意識する機能を追加し、固定サイズ UI でラベルもシャープに
- 新機能: 子オブジェクト上のスクロール パネルをクリックすることでをセンタリングするシンプルなスクリプトを追加
- 新機能: スクロールバーおよびスライダー コンポーネントを再設計。新規の共通クラス(Progress Bar)から派生
- 新機能: UIButtonKeyBinding を UIKeyBinding で置き換え、機能を見直し
- 修正: パネルに Rigidbody を自身に追加。Unity 4.3 以降はパフォーマンスにプラス効果が期待される
- 修正: UIScrollView 動作の制限の不具合を修正(違和感のあるスケールを修正)
- 修正: 再生時にドラッグパネルが移動する不具合を修正
- 修正: ガーベージ コレクションの割り当ておよびメッシュ割り当てを削減することによるパフォーマンス向上
- 修正: Typewriter およびテキスト リストのスクリプトをダイナミックフォントで使用できるように修正
- 修正: アトラス参照がスプライト修正時に壊れる不具合を修正
- 修正: ポップアップ リストが固定サイズ フォントの場合もフォント サイズを変更できる方法を新たに提供
- 修正: ポップアップ リストがコンテンツを正しくエンベロープしない不具合を修正
- 修正: アトラスおよびフォント選択ツールが、最近使用したものだけでなく全ての既存アセットを表示するように修正
- 修正: アトラス メーカーが古いアトラス(SciFi等)を編集するときに例外エラーが発生する不具合を修正
- 修正: ウィジェットの有効化および無効化によりドローコール一覧が必要でない場合にも再構成される不具合を修正
- 修正: NGUI が最後に使用した値を記憶する仕組みを改善して修正
- 修正: ドラッグ ハンドルが、描画するスペースがなくなった場合に、非表示で隠れるように修正
- 修正: 一回だけ実行("Run Only Once" )にセットされたアンカーおよびストレッチ スクリプトがスクリーンサイズ変更に反応するように修正
- 修正: パネルをクリッピング モードにして、元に戻した場合にシェーダが正しくリフレッシュされない不具合を修正
- 修正: ウィジェットを動き回したことによりバッファが再構成される不具合を修正(Transform のみ修正)
- 修正: 追加のコードを追加しドローコールが不要に増加しないよう修正
- 修正: パネルのアルファが累積するように修正(親が子に影響)
- 修正: 課題を引き起こしていた古いダブルバッファのコードを削除
- 修正: Windows 8 周りの微調整
- 削除: UIPopupList の 'textLabel' オプションを削除。OnValueChanged の代わりにラベルの SetCurrentSelection を使用すべき
- 削除: UIGrid および UITable から 'repositionNow' メンバー変数を削除。右クリックして実行で代替

3.0.6 f2
- 修正: モバイル デバイスでチラツキの不具合を修正

3.0.6 f3
- 修正: OS X でのコンテキストメニューを修正

3.0.6 f4
- 修正: 自身をパネル リストに挿入するウィジェットが正しいパネルを使用しない不具合を修正

3.0.6 f5
- 新機能: アトラスからスプライトを抽出する機能を追加
- 新機能: 右クリックによりスプライト選択ウィンドウの中でスプライトの編集および削除できる機能を追加
- 新機能: アトラス更新時にアトラスメーカー進捗状況バーを追加
- 修正: アトラスメーカー、スプライト選択ツールおよびインスペクタとスプライト選択が密に連携し更新する機能を追加
- 修正: 再生ボタンを押下しないとウィジェットのデプス調整が正しく行なわれない不具合を修正
- 修正: スプライト選択ウィンドウによる大量のスプライトのハンドリグ方法を改善
- 修正: ウィジェットが自身をリストに二回追加する不具合を修正

3.0.6 f6
- 新機能: ドラッグ&ドロップ スクリプトを修正し、堅牢性を高めたうえコア部分へ移動
- 新機能: ドラッグ&ドロップのサンプルを再作成し、代わりにスムーズにアニメーションしたスクロールビューで置きかえ
- 新機能: UI2DSprite に 'nextSprite' フィールドを追加、 Unity アニメーション システム を使用してスプライトのアニメーションを可能とした
- 新機能: パネルにドローコールを表示する代わりにドローコール ウィンドウを別に作成
- 修正: レアな不具合があったためMesh.RecalculateBounds を再追加し、任意の機能とした
- 修正: UI2DSprite および UITexture が自身をパネルから正しく削除するように修正
- 修正: ウィジェットのコンテナが隠れた場合にもハンドルが表示される不具合を修正

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

マイナーバージョンアップと思えないほどの大量修正・・・・NGUI作者の正体はじつは仙人なんじゃないだろうか

ドキュメントも増えたようなので最新版を確認しようぜ!

2013年11月25日月曜日

Unity Tips #13 スクリーン解像度

前回に引き続いて Unify Community からスクリーン解像度に関する Tips の翻訳を紹介する:



http://wiki.unity3d.com/index.php/Tip_of_the_day

June 2012

スクリーン解像度


Tip #13 - Screen Resolution

スクリプトの中で画面解像度の変更をする必要がある場合は Screen.SetResolution 関数を使用します。
-------------

PC向けだとフルスクリーン切り替えなどに使うところかな。

隅々までUnityを使いこなそうぜ!!

2013年11月24日日曜日

Unity Tips #14 Unity コンソール出力

前回に引き続いて Unify Community から Unity コンソール出力に関する Tips の翻訳を紹介する:



http://wiki.unity3d.com/index.php/Tip_of_the_day

July 2012

Unity コンソール出力


Tip #14 - Unity Console Output

Unity コンソール出力を行なう必要がある場合は Debug クラスを使用します。
-------------

Debug.Log がもっとも使用頻度多いだけど、Debug.DrawLine や Debug.DrawRay も 3D ゲームでは便利な印象。

上手に活用してデバッグを高速に行なおうぜ!!

Unity Tips #57 Resource.Load/LoadAll での良くある間違い


前回に続いてUnifty Community から Unity Tips を紹介する:

http://wiki.unity3d.com/index.php/Tip_of_the_day
Mar 2013

Unity Tips #57 Resource.Load/LoadAll Gotchas


Resource.Load/LoadAll での良くある間違い


最近、テキスト リソース アセットのおかしな動作に遭遇した。

具体的には Resources.LoadAll メソッドが Path.DirectorySeparatorChar をパスで受付しないのである。実際のところ Path.AltDirectorySeapratorChar 文字列しか受付しない。この動作は標準の .NET ファイル/フォルダ メソッドでは Path.AltDirectorySeapratorChar と Path.DirectorySeparatorChar いずれも受付するという状況であるのに、異なっている。

これはつまり、 Path.Combine を使用して パスをビルドして Resources.LoadAll メソッドに受け渡しすることは出来ず、最初にPath.Directory SeparatorChar 文字列を Path.AltDirectgorySepartorChar 文字列で置き換える必要がある、ということだ。

using System.IO;
using UnityEditor;
using UnityEngine;
 
/// <summary>
/// Settings 登録のハンドリングを行う
/// </summary>
[InitializeOnLoad]
public class EditorInitialization
{
    /// <summary>
    /// RunCallbacks メソッドが一回でもすでにコールされたかを示す値を保持する
    /// </summary>
    private static bool ranOnce;
 
    /// <summary>
    /// <see cref="EditorInitialization"> クラスの static メンバを初期化する。
    /// </summary>
static EditorInitialization()
    {
        EditorApplication.update += RunCallbacks;
    }
 
    private static void RunCallbacks()
    {
        if (!ranOnce)
        {
            // リソースのロードを試みる
            var path = Path.Combine("Test/SubFolder", "testfile"); // 結果は Test/SubFolder\testfile
 
            // var data = Resources.LoadAll("Test/SubFolder/testfile", typeof(TextAsset)); // この行を正しく処理
            var data = Resources.LoadAll(path, typeof(TextAsset));  // この行は失敗
 
            if (data != null && data.Length != 0)
            {
                Debug.Log("みつかりました");
            }
            else
            {
                Debug.Log("みつかりませんでした!" + path);
            }
 
            ranOnce = true;
            return;
        }
 
        // 処理を追加
    }
}
次のリンク先に提出したバグレポートがある。
--------------

 Tipsで少しづつでも知識を積み上げていこうぜ!

Unity TIps #51 - テクスチャ アトラスのサポート

前回に引き続いて Unify Community からバージョン変更でテクスチャ アトラスに関する Tips の翻訳を紹介する:



http://wiki.unity3d.com/index.php/Tip_of_the_day
Feb 2013

Tip #51 Texture Atlas support

テクスチャ アトラスのサポート


テクスチャ アトラスはあまりに良く使用されるものであるため、何か生成するためのビルトインの機能があるはずだと考えていた。実際にこれは存在するようである!これは Texture2D.PackTextures メソッドだ。
------

今回はあまりに短い Tips なので「みんなNGUIとかアセット使ってるし、どうなんだろう?」とおもったが、スクリプトリファレンスをみるとかなり便利そうではある。

Unityスクリプトリファレンス
http://docs.unity3d.com/Documentation/ScriptReference/Texture2D.PackTextures.html

いくつか気になるQ&Aもあり、要望があればこちらも翻訳していこうとおもう。

Unity Answers - 最近のQ&A
http://forum.unity3d.com/threads/6699-Texture2D-PackTextures/page2

Unity Answers - MaxSize について
http://forum.unity3d.com/threads/86364-Texture2D-PackTextures-maxSize


Unity Tips #43 - Unity4 の MonoBehavior で名前空間を使用

前回に引き続いて Unify Community から MonoBehaviorの名前空間を使用するときの Tips の翻訳を紹介する:



http://wiki.unity3d.com/index.php/Tip_of_the_day
Dec 2012

Unity4 の MonoBehavior で名前空間を使用


Tip #43 - With Unity 4 MonoBehaviors can now be namespaced

Unity 4 以降、MonoBehavior で名前空間に含めることができることは知っていたかな?これでコードを綺麗に整理することができる!
-----

C# で名前空間をバリバリ使用している方に朗報だし知っておくべきだぜ!

Unity Tips #42 - マウスカーソル

前回に引き続いて Unify Community からマウスカースルに関する Tips の翻訳を紹介する:



http://wiki.unity3d.com/index.php/Tip_of_the_day


Nov 2012

マウスカーソル


Tip# 42 - Mouse Cursors

Cursor.SetCursor をコールすれば、ゲームにおけるマウスカーソルの外見をカスタマイズできることは知っていただろうか?
-----

小さなノウハウでも積み重ねていけば大きいぜ!

Audio ToolkitにUnityのオーディオ管理をまかせる


Unityプロジェクトでオーディオファイルが大量になって管理が煩雑になったり、どうやら圧縮設定やらUnityマニュアルのAudio Filesセクションの設定をいくら見直してもパフォーマンス改善の原因に時間がかかるケースがある。

その場合などに便利なアセットとしてAudio Toolkitがあるので紹介をしたい。

http://unity.clockstone.com/assetStore-audioToolkit.html


2012/9/20時点

Unityでオーディオファイルの再生・管理のための便利な機能

  • 簡単なスクリプトインタフェース:オーディオファイルを簡単なstatic関数呼び出しAudioController.Play("MyFX");で再生できるAudioSourceオブジェクトの生成は自動的に行われる
  • オーディオアセットを独自のInspectorビューで簡便に定義
  • ボリュームなどのプロパティをカテゴリ全体に適用できる
  • あるカテゴリのすべてのオーディオオブジェクトのボリュームをランタイム時に変更できる。ミキサー風のユーザインタフェース、スクリプトどちらからも変更できる
  • 複数のオーディオクリップがそれぞれ一定の確率で再生される、あるいは定まった順番で再生されるよう定義できる
  • 高度なオーディオ選択モードとして「ランダムかつ同一オーディオは2回再生しない"RandomNotSameTwice"」、「2つ同時再生"TwoSimultaneously"」、その他を備えている
  • 最適化されたパフォーマンスのためオーディオのオブジェクトプールを使用
  • オーディオ再生の便利なパラメータとして:
    •  ランダムピッチ、ボリューム
    •  複数コールの再生間隔(最短時間)
    •  遅延(delay)
    •  ループ
    •  フェードイン,フェードアウト
    •  最大同時インスタンス数
  • ミュージックのクロスフェードを含む特別関数
  • オーディオの再生完了時のデリゲートイベント
  • 再生リストのシャッフル、ループ等の管理
  • オーディオイベントログ
  • オーディオ概要ウィンドウ
  • すぐれたデザインで使用しやすいユーザインタフェースにてミュージックやサウンドの管理が大規模プロジェクトでも一目で眺望できる

------

このアセットはFree版もあるので試してダウンロードすると良いが、オブジェクトプールの機能は付属しない。使用方法は10分程度のビデオに収まっているので使い方はすぐ分かりそうだ。
http://unity.clockstone.com/assetStore-audioToolkit_Tutorial.html

また、Unity Forumで開発元はいくつかの質問に回答している:

http://forum.unity3d.com/threads/130815-Audio-Toolkit-v3.0-major-update-RELEASED?p=882994#post882994


なかなか評判は良い。あとは実際にオーディオ関係でパフォーマンスを気にしないといけない状況に陥るかどうかだとおもう。

便利なアセットを使いこなそう!

2013年11月23日土曜日

Unity 縦スクロールシューティングのゲームサンプル

ゼビウスやスターソルジャーなど1980年代に一世を風靡した縦スクロールシューティングのジャンル。Unityで参考になるゲームサンプルがあるので紹介したい。
英語版にはなるが、全くの初心者がUnityをウェブからダウンロード、画面の見方を学習するところから始まり、最後はゲームを完成させるまで29回に分けて、C#でのスクリプト作成を中心にゲームの作成方法のチュートリアルがついている。

Unityフォーラムのリンク先からRARファイルとしてダウンロードし、解凍する。

http://forum.unity3d.com/threads/37093-Over-7-hours-of-Unity-Training-Videos-Download-them-now!

Introduction (イントロダクション)
Unity Crash Course (Unity即席レッスン)
The Game Object (ゲームオブジェクト)
Creating our Project (プロジェクトの作成)
Creating the Player (プレイヤーの作成)
Creating the Player Script (プレイヤースクリプトの作成)
Player Script Continued (プレイヤースクリプトの作成-続編)
Creating the Projectile (弾丸の作成)
Firing the Projectile (弾丸の発射)
Adding Sound to our Game (ゲームへのサウンド追加)
Creating Custom Visual Studio Templates (Visual Studioテンプレートの作成)
Creating the Enemy (敵の作成)
Streamlining the Enemy Class (敵クラスの流線型の作成)
Projectile Collisions (弾丸の衝突)
Creating the Explosion Effect (爆発効果の作成)
Putting our Explosion to Work (爆発を動作させるために)
Creating a simple HUD (HUD表示の作成)
Increasing Score (スコアの追加)
Player Destruction (プレイヤーの消滅)
Using Coroutines (コルーチンの活用)
Setting up our Menu (メニューの設定)
Losing the Game (ゲームの敗北)
Winning the Game (ゲームの勝利)
Drawing New Backgrounds (背景の描画)
Creating a Scrolling Background (スクロールする背景の作成)
New Player Geometry (プレイヤーの立体の変更)
New Enemy Geometry (敵の立体の変更)
Enhancing our Player Spawn System (プレイヤー生成の改善)
Increasing Game Difficulty (ゲーム難易度のアップ)


2009年ものであるにも関わらず未だにそのまま使用できるところが凄い!


なおこのUnityプロジェクトをgithubでアップしている方のリンクが以下にある:
https://github.com/Laumania/2DShooter/blob/master/README.md


このゲームサンプルを作成した方は3D Buzzというサイトでフリーで様々な言語(3dsMax、Maya、Houdini、C# / .NET / XNA、C++、Unreal、Unity、iPhone)での開発チュートリアルを作成している。英語なのがつらいところだが、有料コンテンツはまったくなく会員登録を無料で行えば全てみれるので機会あればぜひ見てほしい。

今回のチューリアルも3D Buzzサイトに載っているので、これであればRARファイルをダウンロードする手間も省ける。

http://www.3dbuzz.com/vbforum/sv_videonav.php?fid=db25cc88fdc47f4afd9562b6abb1332a

ゲームサンプルからC#をマスターしよう!

Unityでマルチスレッド(前半)


Unity Gemsでマルチスレッドに関する記事があったので今回はそれを紹介したい:



http://unitygems.com/threads/
November 2, 2012


はじめに


ゲームでマルチスレッドを活用することに興味がある場合、この記事が役立つようにしたい。スレッドは比較的複雑なトピックだがマスターすることでマルチプロセッサのあるハードウェアや、プロセッシングを管理可能な単位に分割するのが大変な場合に大きなメリットが生じるものだ。

スレッドが実際に役立つケースをあげると:


  • A* のようにレベルマップの多くのデータを処理する必要があるアルゴリズム
  • メッシュ変形など大量の点データを扱う処理
  • サーバへの長時間のアップロード
  • QRコード認識のような画像処理

大量の処理があり処理完了までUnity オブジェクトとの相互作用が少ない場合はスレッドを使用し、それ以外ではコルーチンを使用すると良い。

スレッド


スレッドとはプログラムの他のスレッドと同時に実行されるプロセスだ。マルチプロセッサ搭載のマシンでは完全に同時実行の場合があるが、そうなるかはスレッドの数がプロセッシングコアの数より多いかによって決まる。

Unity でプログラミングするとき、メインのゲームスレッドが常に存在し、スクリプトで全てのコードを実行させることが出来るが、もうひとつの手段として、メインゲームと同時に実行する追加のスレッドを作成することが出来る。

Unity では メイン スレッドからコンポーネント、オブジェクト、Unity システム コールのみアクセス出来る。これらのアイテムは、二つ目のスレッドからアクセスを試みると失敗し、エラーが生じる。これはかなり致命的な制約だが、この記事ではどのようにしてこれを回避するか取り上げる。

いつも継続するわけじゃない


コードを記述するとき、別の関数に実行を移すよう明示的さえしなければ関数を開始した後は、 「return のところまで継続してくれるんだよね」と、勝手に想定している人が多い。だけど実際にはいつも継続するわけじゃない。どんな時であってもコードはプロセッサによってスリープさせられるかもしれないし、別のコードが実行されてOSの判断で再び自身のコードに処理を割り当てるべきと判断すれば、ウェイクアップして何事もなかったように続きが行われる。

マシンコードの全てのステートメントでスレッドはサスペンドされることがあり、一つの高レベルのコードのステートメントは多くのマシンコードに変換されるため、自身のプログラムは自身が記述した指示の途中でサスペンドされるかもしれない。

これらはごく普通のことであり、一般的に気にすべきことではない。いや、スレッドのことを考えるとき以外は気にしなくて良いと言うべきだろう。複数スレッドがあるとき、同じ変数やクラスを同時にアクセスするかもしれず、あるいはコードがサスペンドされてそしてステートメントよ残りが実行される前に変数の値を変えられてしまうかもしれない。

このサンプルでは最初のスレッドがCPUレジスタに 1 を追加する準備が出来た後、値 A をロードした後に中断される。[二つめのスレッドもまた値 A を読み込み、50のままであり、1000を減算し値をA に格納し、この時点で A  は -950 だ。この時 スレッド 1 が再開レジスタに入っている 50 に 1 を加えて値をA に格納する。この時点で A  は 51 となり、-950 は完全に失わられる。

根本的に、これによりスレッドを使用することは難しく、またこういった現象を回避するため一つ以上のスレッドが同時にアクセスするかもしれない変数やメモリのアクセスは大変慎重に行なう必要がある。

Unityではこの問題を回避するため、全てのシステムおよびフレームワークのオブジェクトで他のスレッドからのアクセスは無効とみなすことにしている。
------

次回に続くぜ!


関連記事

Unity Tips #32 マイクを試す

前回に引き続いて Unify Community からスクリプトによるマイクの使用に関する Tips の翻訳を紹介する:



http://wiki.unity3d.com/index.php/Tip_of_the_day

Sep 2012

マイクを試す

Tip #32 – Can you hear me now?

Unity でマイクへのアクセスを提供するには Microphone クラスを使用します。
-----

今回分はさすがに常識の範囲だなぁ〜 Tips はなかなか知らないものと「それは知ってるよ」と玉石混淆なのが不思議な感じ?!

Unity Tips #28 システム情報の取得

前回に引き続いて Unify Community からシステム情報の取得に関する Tips の翻訳を紹介する:



http://wiki.unity3d.com/index.php/Tip_of_the_day

Aug 2012

システム情報の取得

Tip #28 - System Information

詳細なシステム情報取得の際は、SystemInfo クラスを使用できます。SystemInfo によりグラフィックデバイスのハードウェア、プロセッサ数、OS、デバイスの種類、などといった情報が提供されます。ハードウェアのスペックに関する統計やトレンドを収集するのに便利です。
----------

システム情報か~、案外とiOSデバイスのほうが使う場面が多いかなぁ。ちなみに自分はiOSデバイスが多くって、せいぜいSystemInfoはOSのバージョンぐらいかなぁ。

強火で進め: [Unity][Unity3d]UnityでiOSデバイスのデバイス情報を取得する方法
http://d.hatena.ne.jp/nakamura001/20120614/1339688557

Unity Tips #27 OpenGL描画

前回に引き続いて Unify Community からOpenGL 描画の取得に関する Tips の翻訳を紹介する:



http://wiki.unity3d.com/index.php/Tip_of_the_day

Aug 2012

OpenGL 描画


Tip #27 - OpenGL Drawing

Unity API は OpenGL 形式グラフィックスへのアクセスを提供し、即時モード描画を GL クラスが利用できます。
----------

ん~、メッシュを使わずに幾何学図形など描くなら確かに活用するのだろうが・・・

使い道は今後考えるぞってTipsだぜ!!(おい)

Unity Tips #24 条件付きコンパイル

前回に引き続いて Unify Community から条件付きコンパイルに関する Tips の翻訳を紹介する:



http://wiki.unity3d.com/index.php/Tip_of_the_day

July 2012

条件付きコンパイル


Tip #24 - Conditional Compilation

Unity において条件付きコンパイルで必要なコーディング記号を知りたい場合、プラットフォーム依存コンパイルのドキュメントを参照して下さい。
-------------

自分なら使うのは UNITY_STANDALONE, UNITY_IPHONE, UNITY_ANDROID , UNITY_4_2 が多い気がするが、全部のパターンがあるなぁ~。一度要チェックだぜ!

Unity Tips #29 ジャイロスコープ

前回に引き続いて Unify Community からジャイロスコープに関する Tips の翻訳を紹介する:



http://wiki.unity3d.com/index.php/Tip_of_the_day

Sep 2012

ジャイロスコープ

Tip #29 - Gyroscopes

デバイスがサポートしている場合、Gyroscope クラスを使用して、デバイスの向きや加速度といったジャイロスコープ情報を取得できます。
----------

ん~、iPhone4登場のときに少し話題になった気がするの一方で、加速度センサーでも十分なことが多いような。あとはサポートデバイスが限定される作りにするのは悩みが多そうだぁ~

2013年11月17日日曜日

NGUI 3.0.5リリース

NGUI  バージョンアップ情報です:


http://www.tasharen.com/forum/index.php?topic=11.25
November 09, 2013, 10:07:13 AM

3.0.5
- 新機能: 指定した名前とディクショナリの組み合わせでローカライゼーション言語をセットできる新機能を追加
- 新機能: UIInput.onChange を追加、入力フィールドが任意の理由で変更があったときに呼び出しが発生
- 新機能: 選択された UI 要素でシーンビューで右クリックすることで裏にある階層リストを表示するよう機能追加
- 修正: ウィジェット選択ロジックで、場合により間違ったウィジェットを選択してしまうバグを修正
- 修正: "Max Lines" ラベルにて、 "Shrink Content" をオーバーフローしてセットした場合も正しく動作するよう修正
- 修正: ドラッグパネルで整数を使用するよう修正し、ピクセル パーフェクトを保持
- 修正: UIPlayAnimation で複数の OnFinished 呼び出しの場合に発生してた不具合を修正
- 修正: UITextList がダイナミックフォントを使用したラベルで動作するよう修正
- 修正: ポップアップ リストがダイナミックフォントを正しくシリアライズするよう修正
- 修正: UILabel がゼロを最小サイズとして使用できないように修正
- 修正: カラー表記が正しく認識されないことが多い不具合を修正
- 修正: BetterList.Sort が Array.Sort を使用するように修正
- 修正: Unity 4.5 の警告を外すよう修正
- 修正: UIInput.Append での Null チェックを修正
- 修正: Flash プラットフォームでのコンパイルについて修正
-------------

大幅バージョンアップだったNGUI3.0.0シリーズで丁寧にリリースされているマイナーバージョンアップ。すでにNGUI 3.0.xにあげてるならば、バグ修正対応は貴重。

それにしても修正ペースが早い・・・

迷わず最新版にしようぜ!

2013年11月16日土曜日

【やったね!】NGUI作者が改善要望を広く募集中!

NGUI作者が自身の掲示板サイトでNGUIに何が足りないのか、改善要望を募集中だ。


http://www.tasharen.com/forum/index.php?topic=6615.0
November 13, 2013, 05:15:44 AM

NGUI改善:皆様の声をお待ちしてます


一部の皆さんはご存知のこととおもうが、NGUI は自身のための UI システムとして開発した。そこから一年で大きく進化し、その後は Unity にジョインして開発は少し停滞している。これは Unity との契約により NGUI にマイナーチェンジしか許容しない側面と、Unity でフルタイム ジョブを抱えているなかでサポートとの両立が難しい側面と両方あった。

その状況は変化してきていて、多くの人が知っているとおり Unity で貢献している新 UI は間もなくリリース間近。だけど、これは NGUI をベースにしていてどの機能が重要かについてはどうしても自身の偏見が残っている。そこでユーザの皆さんの率直な意見を聞きたい。どういう機能が大事? NGUI / あるいは Unity の GUI 両方で登場してほしいのは何?

何人かからエディタのコンテキストメニューという声は聞いた。これについては、右クリックのウィジェットを追加する方法を最近試して、その下にある階層リストを見せる方法として準備した。もっとこれのバリエーションを作成したほうが良いんだろうか?それともこれはゴチャゴチャして役立たない機能だろうか?例としてはコンテキストメニューからウィジェットを作成する機能をつけたり、子オブジェクトを追加したり、共通コンポーネントをアタッチしたり・・・。自分にとっては重複機能を作っているみたいで、 NGUI には専用のホットキーがあるのだし(Alt + Shift + S でスプライトの追加、Alt + Shift + L でラベルの追加、Alt + SHift + T でテクスチャの追加、Alt + Shift + C でコライダーの追加、等々)。このあたりは皆どう思う?

さらに、どの領域を改善 / 再設計したほうが良いとおもう? アンカー / ストレッチ 周りのシステム再設計はすでにロードマップに入れている。もっと直感的にクリップ領域を指定する方法も同様にロードマップにあるし、これはアンカー / ストレッチ 周りの設計よりも先に行なう予定だ。あとは何だろう? NGUI ウィジェットのレゴブロックのような構造は好き嫌いがあるのは分かっているし、人によっては複雑かもしれないし(例えばチェックボックスが複数のゲームオブジェクトやコンポーネントになっていること、等)、また更に別の人は柔軟性が高くてコードを修正せずに UI をカスタマイズできるのを良いとおもっているかもしれない。皆さんはどう?

もっと重要なことが残っている。NGUI でイラつくのはどういう場合?「いい加減にしろよ!(怒り)」となるのはどんな時? 自分自身も現実にはイラッと来ることはあるんだけど(実は Mecanim 周りで・・・チッ!)、なので全く理解できないことがあるとどうしてもシステムを嫌う癖があって自問自答しているところだ。なんか皆さんのほうでもイラッと来たことがあって是非直してほしい / 説明してほしいなら是非教えてほしいし、出来れば何とかしたいとおもっているんだ。

端的にいえば、NGUI と uGUI、どっちも改善したい。皆さんの意見をもらうことでそれが出来るとおもうので率直な声をもらえないだろうか?

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

おおっ。これはチャンス!!

だけどぉ、英語ってのがネックかなぁ~~。まあ拙い英語だって気持ちが伝わるなら何だって問題ないはずぅぅ(震えた声)

是非、皆も意見を掲示板に投稿してあげようぜ!
http://www.tasharen.com/forum/index.php?topic=6615.0

2013年11月10日日曜日

NGUI 3.0.4 リリース

NGUI  バージョンアップ情報です:


http://www.tasharen.com/forum/index.php?topic=11.25
November 03, 2013, 11:00:37 AM

3.0.4 (3.0.3 のマイナーアップデートを統合)
- 新機能: UIPanel で物体を描画するレンダリング キュー 番号(Render Queue Number)を表示されるように機能追加
- 新機能: ウィジェット ウィザードによりビットマップ フォントを指定できるように機能追加
- 新機能: ウィジェットのボックス コライダを自動リサイズできる機能追加
- 修正: Draggable Panel のスクロールバーが正しく隠れない不具合を修正
- 修正: スクロールバーによりスプライトを強制的に Pixel Perfect とする不具合を修正
- 修正: UIInput が非選択時にパスワード文字を隠し文字にしない不具合を修正
- 修正: UILabel がテクスチャの再作成(Rebuild)コールバックを確実にクリーンアップするためのチェック追加
- 修正: NGUITools.AdjustDepth を通してパネルのデプスを調整することで子パネルに影響しない不具合を修正
- 修正: UILabel.ProcessAndRequest がビットマップ フォント
- 修正: エンコードされたカラーつきのラベルが正しく折り返さない不具合を修正
- 修正: スプライト割り当て前にスプライトの幅および高さをゼロにセットできないように修正
- 修正: ウィジェットにヒットしない Raycast が無視されるように修正
- 修正: [-] 文字で終わるラベルで Out of Bounds 例外が出る不具合を修正
- 修正: UIWidget.ResizeCollider のウィジェットを無効化したときに何も動作しないように修正
- 修正: モバイル プラットフォームで UIInput のテキストをクリアしないように修正
- 修正: UIInput.Submit() により UIInput.current が正しくセットされない不具合を修正
- 修正: 下位互換を一部追加
- 修正: イベント デリゲート設定を修正
- 修正: Unity 3.5 対応による修正
- 修正: Windows Phone 8 対応による修正
-------------

大幅バージョンアップだったNGUI3.0.0シリーズで丁寧にリリースされているマイナーバージョンアップ。すでにNGUI 3.0.xにあげてるならば、バグ修正対応は貴重。迷わず最新版にしようぜ!

2013年11月9日土曜日

Unity Tips #15 タグの活用

前回に引き続いて Unify Community から タグの活用に関する Tips の翻訳を紹介する:



http://wiki.unity3d.com/index.php/Tip_of_the_day

July 2012

タグの活用


Tip #15 - Tags

複数のコピーされたゲームオブジェクトで作業する際、タグを使用して特定のオブジェクトを一意で特定したい場合があります。そうすれば GameObject.FindGameObjectsWithTag を使用してスクリプトのなかで特定のオブジェクトを選択できます。
-------------

そうそう、最初はこういった基本もなかなか気付かないもの。全てのテクニックを身に付けてより効率的にゲームを作ろうぜ!

2013年11月5日火曜日

Unity Tips #16 Gizmoの表示

前回に引き続いて Unify Community から Gizmo の表示に関する Tips の翻訳を紹介する:



http://wiki.unity3d.com/index.php/Tip_of_the_day

July 2012

Gizmo の表示


Tip #16 - Gizmos

ゲームのデバッグを手助けする良い方法は Gizmo を使用してシーン上で空のゲームオブジェクトを視覚的に表現することです。BurgZergArcade のサンプルを参照下さい。
-------------

例えばナビメッシュなんかも Gizmo を活用して AI のターゲットなんかを視覚的に表現すると面白いかも。テクニックを駆使して開発効率を上げようぜ!

2013年11月3日日曜日

NGUI 3.0.3リリース

NGUI  バージョンアップ情報です:


http://www.tasharen.com/forum/index.php?topic=11.25
 October 25, 2013, 08:25:56 PM

3.0.3:
- 新機能: ダイナミックフォントのために UIFont を作成する必要がなくなり、ラベル上で直接フォントサイズおよびスタイルを指定できるように機能追加。
- 新機能: ダイナミックフォントを活用したラベルが縮むとき、より小さなフォントサイズで自動的に表示することができる機能追加により、シャープな字体表示を維持
- 新機能: スプライトおよびラベルを複数編集できるよう機能追加
- 新機能: UIInput を再設計した結果、キャレットの移動およびエディタでのキーのコピー&ペーストをサポートするよう機能追加
- 新機能: UIInputValidator スクリプトの機能が UIInput に移行
- 新機能: イベントを横取りする簡単な方法として透明なウィジェットの作成できる機能追加
- 新機能: EventDelegate により匿名のデリゲートを使用できるよう機能追加
- 修正: UICamera.selectedObject がフレーム終了まで遅延するように変更
- 修正: GUI/Text シェーダの使用を止め、代わりに Unlit/Text シェーダで置き換え
- 修正: デプスが同一に対して、ウィジェットにマテリアル順のソートを追加し、自動的にドローコールを削減。
- 修正: UITexture が誤って Unlit/Texture シェーダを誤って参照する場合がある不具合を修正
- 修正: アクティブなタッチイベントがあった場合にマウスイベントが処理される不具合を修正
- 修正: ポップアップ リストが正しくテキストのスケールを反映しない不具合を修正
- 修正: CalculateRaycastDepth が無効化されたウィジェットを無視するように修正
- 修正: Windows Phone 8 コンパイルの不具合を修正
- 編集: UILabel.font を UILabel.bitmapFont とより明示的な表現とした
- 削除: UILabel から password オプションを削除(元から必要性がなかった)
- 削除: UpdateManager を廃止(二年前から廃止すべきだった)。


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

大幅バージョンアップだったNGUI3.0.0シリーズでのマイナーバージョンアップ。すでにNGUI 3.0.xにあげてるならば、バグ修正対応は貴重。迷わず最新版にしようぜ!

ブックマークに追加

このエントリーをはてなブックマークに追加

自己紹介

自分の写真
Unity3D公式マニュアル翻訳やってる人がスマホ(iPhone, Android)のゲーム開発しています。気軽に面白く初心者が遊べる内容がモットー。Blogでは開発情報をひたすら、Twitterではゲーム作成の過程で参考にしている情報を中心につぶやきます

ページビューの合計

過去7日間の人気投稿