Unityな日々(Unity Geek)

Unityで可視化アプリを開発するための試行錯誤の覚書

高速化:組み込み(ビルトイン)配列を使う

(Unity Script Reference – Array) 一般にスクリプトで配列を定義する際は、 var array = new Array (Vector3(0, 0, 0), Vector3(0, 0, 1));のようにする。これをjavascript配列と呼ぶ。値を指定しない場合のデフォルトは"null"になる。一方、ビルトイン配…

XBOX360コントローラを使う

まずInput Managerを使って、XBOX360コントローラの操作をアサインする。参考:Unity - InputEdit-Project Settings-Inputを選択 InspectorにInput Managerパネルが現れる。ここでキーや、ゲームコントローラーのボタン・スティックのアサインを行う。

First Person Controllerを使う

Assets-Import Package-Character Controller を選択 プロジェクトビュー内のStandard Packagesの中にCharacterControllerフォルダが作られる。これを開く。 First Person Controllerをヒエラルキービューに移動 シーンビュー上でFirst Person Controllerの…

連想配列(Hashtable)を使う

こちら(Unityでゲーム開発 -JavaScript:連想配列を使う方法-)を参照のこと。

XmlDocument()でXMLをパースする その2

XmlDocumentを使ったXMLパース方法の続き。Unity Noobs: XML - Loading data from a xml file.のスクリプトが良い参考になるので、これを解読してみる。サンプルのXMLは次。 <levels> <level> <name>Level 1 (xml)</name> <tutorial>Try comes close to all four objects. (xml)</tutorial> <object name="Cube"> Hi, I'm a cube! (</object></level></levels>…

XmlDocument()でXMLをパースする その1

以前、XMLParserを使ってXMLをパースする記事を書いたが(XMLParserを使う その1、XMLParserを使う その2)、テキストやアトリビュートの取り出し方が今ひとつわからなかった。そこで、別の方法---というよりこちらの方が正当なやり方かもしれないが---、.…

XMLParserを使う その2

XMLParserについての続き。(「その1」はこちら)。XMLNodeクラスには3つのメソッドが定義されている。 class XMLNode extends Boo.Lang.Hash{ function GetNodeList(path:String){ return GetObject(path) as XMLNodeList; } function GetNode(path:Strin…

変数の型を変換する

(1) Parse() メソッドを使う var num = float.Parse("123.456"); // numはfloat変数になる

外部ファイルへのパス

Unityでは外部ファイルへのアクセスがやや面倒。ややこしいので具体例で示す。以下、Mac環境です。まず現在のアプリケーションのパスは Application.dataPath で取得できる。ただし、実行環境でその値は異なる。(参考:Unity Script Reference – Applicatio…

水面を作る(Proのみ)

Assets-Import Package... - Water(Pro Only)を選択 すべてにチェックを入れて(デフォルトでそうなっている)、"Import"をクリック Projectビュー/Standard Assetsの下に、"Editor"と"Water(Pro Only)"を言うフォルダができる。 "Editor"と"Water(Pro Only)…

水面を作る

Assets-Import Package... - Water(Basic)を選択 すべてにチェックを入れて(デフォルトでそうなっている)、"Import"をクリック Projectビュー/Standard Assetsの下に、Water(Basic)を言うフォルダができる。 開くと Daylight Simple Water Nighttime Simpl…

パスについて

ローカルデータにアクセスするには、"file://"+絶対パスで記述する Macの場合、"file://ボリューム名/Users/...”となる。 "file://XOOMS14/Users/ay3844/Documents/_development/unity/trial/trial01/publish/data/pict01.jpg"; この例では"XOOMS14"がボリュ…

WWWクラスで外部ファイルを読みこむ

wwwクラスを使ってUnityで外部ファイルを読み込むことができる。http://images.earthcam.com/ec_metros/ourcams/fridays.jpgの画像ファイルを読み込む例。 #pragma strict var url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg"; function …

ビルドする

File-Build Settings... を選択 ビルドするシーンを選択する。現在開いているシーンファイルを選択する場合は、"Add Current"をクリック 詳細設定は下部の"Player Setting..."をクリックし、Player Settingsウィンドウでパラメータを設定する。下の例では、C…

外部のテキストファイルを読み込む

外部テキストファイルを読み込むひとつの方法が、System.IOを使うもの。 【関連】 WWWを使う方法:WWWクラスで外部ファイルを読みこむ - Unityな日々(Unity Geek) Text Assetを使う方法:テキストファイル(TextAsset)からレイアウト情報を読み込む - 強火…

XMLParserを使う その1

Unity Scriptsの[Download UnityScript XML Parser:title=Unityscript XML Parserへのリンク]をクリックし、ZIPをダウンロードする。 解凍すると3つのjsスクリプトファイルができる。 これらをUnityのプロジェクトビューにドラッグ&ドロップ パースするス…

Lightmappingを使う

次のシーンに対してLightmappingを行う。 Windows-Lightmappingで、Lightmappingウィンドウを開く レイアウト内に埋め込むと便利 ヒエラルキービューでLightmapを焼き付けたいオブジェクトを選択し、Lightmappingビューで"Lightmap Static"にチェックを入れ…

オブジェクトに物理的な特性を加える(Rigidbody)

対象オブジェクトに、Rigidbody コンポーネントを付加する。 例えば、対象オブジェクトを一定速度で動かす場合、対象オブジェクトに次のスクリプトを付加。 秒速1mで上方向に移動する function Start () { rigidbody.velocity = Vector3.up; } function Upda…

オブジェクトのまわりを回転させる

transform.RotateAround()関数を使う。下の例では、targetオブジェクトのupベクター(Y軸)の周りを秒速45度でまわる。 第一引数のVector3.zeroはこのスクリプトがアタッチされるオブジェクトの回転基準点らしい。 var target:Transform; function Start () …

MonoDevelopの文字化けを修正する

UnityScriptのデフォルトエディタはMonoDevelopだが、インストール状態だと文字化けが生じる この修正方法は次の通り 参考:MacのMonoDevelopの日本語表示の文字化けの直し方(3.5に同梱されているものの場合) - 強火で進めUnityフォルダの中の"MonoDevelop.a…

フレームとUpdate(), FixedUpdate()

Unityは「フレーム」と言う概念で描画を繰り返す。映像と同じ考えだ。 ひとつのフレームの動作はfunction Update(){} の中に記述するが、Update()は実行間隔は一定ではない。 そこで、前のループからの時間経過を表すTime.deltaTimeを使う。定めた速度にTime…

HOTweenのTips

HOTweenのベストプラクティスのページに書かれているTips。 最初のTweenを作る前に、HOTween.Initを実行する。HOTweenのインスタンスは削除せず使う。 TweenのIDを保存する際は、Id(テキスト)ではなく、IntId(整数指定)を使う。 同一の Tweener/Sequence…

HOTween Visual Editorをインストールする

HOTweenのdownloadページで、HOTween Visual Editorのリンクをクリックし、ZIPファイルを保存 ZIPファイルを解凍。"HOTweenEditor"と言うフォルダができる。 フォルダの中には、packageファイルがある。これを適当な場所に移動。(僕の場合は、Unity開発用に…

iTweenを導入する

"UnityのTweener"としてデフォルトになっているのがiTween。非常に高機能なライブラリだ。 iTweenの導入手順をメモした。iTweenのサイトの右上、"Get iTween"をクリック ”Download iTweenを"クリック ”Open Asset Store"をクリック 「外部プロトコルリクエス…

HOTweenを導入する

HOTweenは、高速・タイプセーフなオブジェクト指向Tweenエンジン。javascriptでもC#でも使える。 数値(および一部の非数値)プロパティおよびフィールド(number, vectorなど)を「アニメート」できる。 現在、Windows、OSX、iOS、Androidで作動。Flash用エ…

Unity日本語リソース

Unity japanUnity ユーザマニュアル UnityドキュメントUnity 2ch Wiki - トップページUnity3d.jpサイト(準備中)unity3D SNSゲームの神の子 daiのキセキ

よく使うショートカット

Q:ハンドツール W:移動ツール E:回転ツール R:拡大ツールマウス右ボタン+W:ビューを前に移動 マウス右ボタン+A:ビューを左に移動 マウス右ボタン+S:ビューを手前に移動 マウス右ボタン+D:ビューを右に移動オブジェクト選択状態で F:オブジェク…

コンソールとステータスバー

コンソールウィンドウは、デバッグに使う。 Windows-Console または Ctrl+Shift+C で開く スクリプトから出力したテキストは、Consoleウィンドウ下部のステータスバーに表示される

Game(ゲーム)ビューの操作

Gameビューは実際のゲーム実行を見る画面 上部の再生/一時停止/コマ送りボタンで操作する アスペクトメニューで画面アスペクト比を選択 Statsボタンは、ゲーム実行時の統計。FPSが落ちていないかなどを確認できる。

Scene(シーン)ビューの操作

もっとも操作が複雑なのが、Scene(シーン)ビュー。逆にSceneビューの操作に慣れれば効率よい作業ができる。 1.ツールバーの切替 ハンドモード qキー 移動モード wキー 回転モード eキー 拡大縮小モード rキー Center/Pivot zキー ※移動・回転ツールの中…