みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Unity

Unityで2D スプライトのアニメーションを作る

Unityで2Dスプライトのアニメーションを作ろうとしていて,いまいちよく分からなかったので,分かりやすいようにまとめてみました. ここでの作業目的は,AdobeのIllustratorでアニメーションを作成し,Unityに取り込んだ後,Unityでアニメーションを自由に…

SpriteでLookAtがうまく動作しない時の回避策

Unityではtransform.LookAt(target)を使えば指定した方向を向くように向きを設定できますが,2Dのspriteではうまく指定した方向を向いてくれません (Unity 4.5.1で確認). なので,LookAtを2Dで実装して回避するスクリプトをメモしておきます. # Boo script…

Androidでジャイロを使う時の注意

UnityでAndroidのジャイロを使おうとしてハマった.どうやら,Gyroscope.enabledをtrueにしなければ使えないらしい. 最初に以下のようにジャイロを有効にして, def Start (): gb = SystemInfo.supportsGyroscope; if gb: Input.gyro.enabled = true else: …

Unityにて複数のカメラを使う

Unityでは複数のカメラを使用することができますが,上手に利用すればとても便利なので,メモしておきます. オブジェクトに印をつける デモ (マウスでドラッグしてカメラを動かします) 最初に,Cubeと印のテクスチャの2dスプライトを作成します. それぞれ…

Unityで他のGameObjectの関数を呼び出す

Unityにて他のGameObjectの関数を呼び出すには,GameObject.SendMessage()を使用します. 例えば以下のようにMain CameraのGUI.booからpersonというGameObjectのMove.booというスクリプトのRun(speed as single)関数を呼び出すことを考えます. Main Camera …

Blenderの3DモデルをUnityにインポートして使う

Blenderで作成したモデルをUnityにインポートして使用することは多いですが,軸の方向を正しく設定しないとややこしいことになってしまいます.ここではその方法をまとめておきます. 時間がない人↓ Blenderでは+X: 右,+Y: 前,+Z: 上 Unityでは+X: 右,+Y:…

Unityでprefabをスクリプトから読み込む

Unityで,AssetsにあるprefabをBooスクリプトからロードしてGameObjectを作成する方法をメモしておきます. Resources.Load(path) を使います.このメソッドはResourcesフォルダにあるオブジェクトをロードします.詳細はこちらに書いてありますが,このメソ…

UnityのWebCamTextureを使ってみた

UnityのWebCamTextureを触ったのでメモ. WebCamTexture (Reference) 使用方法は簡単で,以下のようなBoo スクリプトで動作します.devices = WebCamTexture.devices でカメラのデバイスリストを取得してから,wct = WebCamTexture(devices[index].name) と…

Macで使うUnityのテキストエディタはTextMate

MacでUnityを使う時,デフォルトのテキストエディタは付属のMonoDevelop.appとなっていますが,みー的にはBoo スクリプトを書くのに少し使いにくいと感じていました.原因は,日本語が入力できない,英数キーがスペースと認識される,起動に時間がかかる,な…

Android実機で実行中のUnityアプリのLogを見る

Android実機にて実行中のUnityアプリのLogを見るには,Dalvik debug Monitorが便利です. DebugモードのAndroid実機をMac(or PC)にUSB接続した状態で, adt-bundle-mac-x86_64-xxxxxx/sdk/tools/ddms を実行すると, みたいに表示されます.初期設定だと全て…

Unityでテキストファイルを読み書きする

Unityにてテキストファイルを読み書きする方法を紹介します. 以下のBoo スクリプトは,Application.dataPath以下にtest.txtを作成し,Hello World! by StreamWriterと書き込んでファイルを一度閉じた後,それを開いてDebug.Log()にて内容を表示する,という…

Unityの2D機能でブロック崩し

Unity4.3より導入された2D機能を使ってブロック崩しを作ってみました.マウスで操作します. こちら 更新履歴 2013.11.24 1.1.0 にアップデート ステージの追加 クリアとゲームオーバーの追加 ブロックの移動を追加 2013.11.15 1.0.0 公開 (制作時間4時間) …

Unity4.3の2D Spriteを使って素直なブロック崩しを作る

Unity4.3が少し前に公開され,2D機能が追加されたようなので,1晩でブロック崩しを作ってみました.製作時間は4時間です. 最初にUnityにて2Dを使用する方法を説明します.プロジェクトの作成画面の下部に2Dか3Dを選択する項目が追加されたようなので,これ…

UnityのTerrainにてheightmapを作成インポートする

UnityのTerrainでは地形を自由に編集することができますが,ここではPhotoshopを使用してheightmapを作成し,それをUnityにインポートする方法をまとめておきます. まずはPhotoshopにて以下のように新規作成します.ポイントは513×513にすることと,16bit G…

BooでUnityのEditorWindowを作る

EditorWindowを使用すると、Unity Editor上でオリジナルの設定画面を作成することができます。早速1つインターフェイスを作ってみました。 作ったのは、Graphics.DrawTexture()のパラメータを設定するためのものです。作ったのがこれ↓ ちなみにキャラは作成…

みーのだんご達

指示通りに だんごを並べて 串をさせ! 制限時間30秒以内に、3つのだんごを、指示された順番にお皿の上にきれいに置き、串を指してください。 だんごはドラッグで移動し、串をクリックすると串を指します。 以下の点が評価されます。 順番が正しいか 串に対…

Draw Callを減らすには

UnityでDraw Callが大きいととても処理が重くなります。Draw Callはできるだけ少なくするのがよいようです。 Draw Callの取得の仕方 Gameウインドウで、右上のStatsを押します。すると下のような情報が表示されます。これはUnity Proでなくても使用できます…

UnityのiOS, Android プラグインがまた無料に

http://japan.unity3d.com/blog/?p=1075 によると、以前は有料だったiOS, Android Basic プラグインが無料になったそうです。 Unity version3の頃も一時期無料キャンペーンがあったのですが、その時は期間限定でした。しかし今回は永久無料になったというこ…

Unity + Photon Cloud でネットワークゲーム

(追記) Photon PUN+ というのを使用すれば,以下のオチは回避されるようです.そのうち使ってみようかな.https://www.assetstore.unity3d.com/#/content/12080 2014.3.5 (注意:この記事にはオチがあります。) Photon Cloudというサービスを利用すると、ネ…

UnityでOS毎の処理を書く

Unityは多くのプラットフォームで動作しますが、プラットフォーム毎に特別な処理をしたいことも多いはずです。例えば、PCでは十字キーで操作するが、iPhoneなどのiOSデバイスではタッチパネルで操作する、というように、プラットフォームで入力方法が違うた…

みーの穴よけランニング

暇つぶしに、暇つぶし用ゲームを作ってみた。 ルールは簡単。キーボード又は画面のボタンの1か2を押してキャラクターを前に進めていく。穴に落ちるか、後ろから食べられたらゲームオーバー。何メートル進めたかを競う。 こちら 更新履歴 2013.2.4 ver 1.01 …

Unityでステレオグラム

Unityで3Dを表示するのは簡単ですが、これによりリアリティを持たせようとステレオグラム表示する方法を考えてみたので紹介します。 ステレオグラムとは? 実行例 立方体が回転する様子をステレオグラムにしています。 みーは交差法でも平行法でも立体的に見…

Unityでテクスチャを透明にする

Unityでテクスチャを透明にするには、背景が透明色のpng画像を用意して、MaterialのShaderをTransparentに設定します。 例えば、下の例ではDiffuseでは背景が白になっていますが、 Transparent/Diffuseに設定すると背景が透明になります。 ちなみにUnityのテ…

万有引力の簡易シミュレーション

万有引力を簡易的にシミュレーションするプログラムを作成しました。 こちら 使い方 初期状態では、2つの星が回っている。 Resetを押すとすべての星を削除する。 Add a plantを押すと、星が1つ追加される。 Zoon +,-を押し続けることで、拡大率が指定できる…

Unityで使える便利なメンバ変数名一覧

Unityで使える便利なベンバ変数をまとめてみました。 Unityで作成するクラスはMonoBehaviourを継承しているので、MonoBehaviourの変数がまず使えます。この変数をもとに、別のクラスのメンバ変数へアクセスすることで、ほとんどのComponentにアクセスするこ…

Unityで様々なObjectにアクセスする方法

ScriptではMonoBehaviourを継承したクラスを宣言する必要があるそうです。 http://docs.unity3d.com/Documentation/ScriptReference/index.Writing_Scripts_in_Csharp_26_Boo.html MonoBehaviourはBehaviourを、BehaviourはComponentを継承しているので、Scr…

iOS appのDebug.Log()

Unityで作成したアプリをiOSデバイスで実行した時に、Debug.Log()などのログメッセージを確認する方法は以下の通りです。 iOS deviceをMacにUSB接続する。 XCodeを立ち上げる。 Window > Organizer を開く。 サイドメニューのDevices > device > Console こ…

Inspectorでのpublic変数の表示

Unityのpublic変数はInspectorに表示され、値を自由に設定することができます。Inspectorの表示は、変数の型によって適切なものが選択されます。 数値 int, singleなどは、数値を入力するボックスが表示されます。 enum リストボックスが表示されます。 publ…

Unity4 と 以前のUnityの共存方法

Unity 4.0.0が公開されました。(2012.12.8に発見) http://unity3d.com/unity/beta/download http://unity3d.com/unity/whats-new/unity-4.0 にUnityの改善箇所がまとめてあります。 みーはiOS3.xプラグインをタダでゲットしたのですが、Unity 4で使用するに…

Unity Error List

Unityのエラーとその原因・対策をまとめています。 expecting "RPAREN", found "???". (BCE0044) Instantiate(prefab, Vector3((i*3,j*3,k*4), Quaternion.identity) のように、カッコが対応していない。エラーが出る行は大抵カッコが対応していない箇所の直…