egulog

よく忘れるので気づいたことなどのメモ。主にUnity3Dのことについて書いてのメモが多いです

複数バージョンのUnityをインストールする方法

複数のUnityをインストールする方法

  1. 現在インストール済みのApplications/Unityに行きフォルダの名前を変更する(Unity→Unity4.2とか)

  2. 次にインストールしたいUnityを普通にインストール

これで複数のUnityをインストール出来る。

ただし新しいバージョンのUnityで作ったプロジェクトを古いUnityで開くことは出来ない。

その場合は、起動時にoptionキーを押しながら起動するとProject Wizardからスタート出来るので新しいプロジェクト or 既存のプロジェクトを選べば古いバージョンでも利用できる。

Android、IOSビルドをまとめて実行する方法

UnityでAndroidIOSビルドをする際、ビルドターゲット変更→Androidビルド→ビルドターゲット変更→IOSビルドを手動でやるのがとても面倒なので作成しました。

本当はIOSビルド後にipa作成→テストフライトアップロードするところまで作りたいのですが、現状ipa作成がうまくいってないのでプロジェクトを作るところまでです。

PCの前を離れるタイミングで実行すると便利です。

※この手法だと前回の記事で紹介した[PostProcessBuild]が使えないようです。

Unityビルド後に処理を実行させる方法

ビルド後になにかしらの処理をしたい場合(xcodeプロジェクトにFrameworkを追加したりしたい場合など)に使用できる。

using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;

public class MyBuildPostprocessor {
    [PostProcessBuild]
    public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject) {
        Debug.Log( pathToBuiltProject );
    }
}

Unity Remoteを使いビルド時間短縮

UnityからIOSにビルドする時間はとても長いですよね。。。

ビルドしてテストするのは大切なのですが、ちょっとした変更点をiPhoneで確認したい場合なんかはUnity Remoteでもいい場合もあります!

Unity Remote 3

Unity Remote 3

  • Unity Technologies
  • ユーティリティ
  • 無料

Wi-Fi経由で開発マシンと同じネットワークに接続されているか、USBで直接接続されている状態でUnity Remoteは使えます。

Transformのコピーアンドペースト

オブジェクトのposition、rotation、scaleのコピー&ペーストをすることが多いのでショートカットキー付きのコピー&ペーストをEditorスクリプトで書きました。

ペーストする際は全部貼付けか、個別に貼付け(position、rotation、scale)が出来るように作りました。

ダイナミックリンクライブラリの生成方法

dllを生成する必要があったためメモ。

コンパイルしたいソースファイルがあるディレクトリに移動する。

mcs -r:/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll -r:/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEditor.dll -target:library ○○○.cs

この場合、UnityEngine.dllとUnityEditor.dllをビルドに含める。

○○○.csの部分がコンパイルしたいソースファイル。

ソースフォルダと同じ場所にdllが生成される。

Unity高速ドキュメント検索『Dash』

Unityで開発中に悩む→ドキュメント検索をいつも繰り返しています。

普通に公式サイト(UNITY - Developer - ドキュメント)にいって検索するのもいいのですが、Dashという無料アプリがおすすめです。

Dash (Docs & Snippets)

Dash (Docs & Snippets)

  • Bogdan Popescu
  • 開発ツール
  • 無料

私は有料版を使っているのですが、無料版でも使えると思います。

まずはUnityドキュメントをダウンロードします。

f:id:egusan:20131129004507p:plain

調べたいことを検索バーに入力すればすぐに見れます!!

f:id:egusan:20131129004536p:plain

さらにDashにはsnippet機能もあるので、monodevelopで制作中の方でもdashを使えば簡単に日本語でコメント可能です。

無料でもとても使えるアプリなので使ってない方は一度使ってみて下さい〜〜。おすすめです!!

Transformの設定を便利にする

transform.positionのyだけを変更した場合が自分は結構あります。

その場合、このように

transform.position = new Vector3(transform.position.x,y,transform.position.z);

設定していたのですが、結構めんどくさいのでtransformを拡張しました。

transform.SetTransformPositionY(1);のような形で使えます。

参考記事 http://warapuri.tumblr.com/post/28972633000/unity-50-tips

テクスチャインポート時にmipmapを外す

2Dゲーム制作時に毎回テクスチャセッティングのMipmapを手動で消すのが面倒なので、settingフォルダに入っているファイルのmipmapをテクスチャインポート時に外すeditorスクリプトを書きました。

この要領で、Setting/RGBA32やSetting/RGBA16など作っていけば手動で設定する項目が大分減るかな〜と思ってます。

UTF-8BOM付きにしてくれるスクリプト

Windows環境の人と一緒に開発しているとUTF-8のBOM付きでないとエラーが発生してしまいます。

新規スクリプト作成時や編集時に自動で変換してくれるスクリプトを公開していてくれています。

スクリプトファイルのutf-8変換

このスクリプトを見つける前は保存するたびにutf-8にするのが手間だったため本当に助かってます。

オブジェクトに簡単にアクセス出来るようにラベルを設定する

f:id:egusan:20130819211640p:plain

インスペクターの下部にあるAsset Labelsパネルの青いボタンを押すとラベルを設定出来る。

設定完了するとProjectにあるSearch by Labelから、ラベルを設定したオブジェクトに簡単にアクセス出来る。

選択中のアイテムの中に空のオブジェクトを生成

UnityメニューのCreate Emptyを使って空のオブジェクトを生成すると一番上の階層にGameObjectが生成されます。しかもPositionに-4.453125みたいな数字が自動的にはいる...!

自分はこれが嫌なのでオブジェクトを選択している場合にオブジェクトを生成すると子にGameObjectが生成され、何も選択しないと一番上の階層にGameObjectが生成されるEditorスクリプトを書きました。初期のポジション(0,0,0)、大きさ(1,1,1)に設定してます。