SlideShare a Scribd company logo
知って得する

Unity

株式会社ハ・ン・ド
プログラマ
馬場翔太
http://baba-s.hatenablog.com/
スライド内容
1. エディタの操作について
2. エディタの拡張について
3. アセットの活用について
エディタの操作
private変数の状態を確認したい

public class Character : MonoBehaviour
{
private int id = 1;
private string name = "Mike";
}
private変数をInspectorに表示する
Inspectorの右上のボタンからDebugを選択

http://terasur.blog.fc2.com/blog-entry-252.html
エディタ停止を忘れて作業をしてしまった
エディタ再生時の色を変える
1. 「Unity>Preference...」を選択する
2. 「Colors>Genreal>Playmode tint]の色を変更する

http://terasur.blog.fc2.com/blog-entry-252.html
ログを出力したオブジェクトを特定したい

private void Start()
{
Debug.Log("Start");
}
ログを出力したオブジェクトを選択
第二引数にオブジェクトやコンポーネントを渡す
private void Start()
{
Debug.Log("Start", this);
}
オブジェクトをキレイに配置したい
オブジェクトの移動や回転でスナップ
Ctrlキーを押しながら移動や回転をさせるとスナップ可能
スナップする量は「Edit>Snap Settings...」で設定可能
深い親子階層を一気に開きたい
Altキーを押しながらアイテムの親子関係を開く
Projectビューで特定のアセットのみ表示
検索欄の右のボタンで表示したいアセットの種類を選択
オブジェクトやアセットを複製したい
複製したいアイテムを選択してCtrl+D
(アセットなら連番の適用も可能)
エディタの拡張
アセットの設定変更を効率化したい
• テクスチャの種類をGUIに
• AudioClipの3Dサウンドをオフに
アセットインポート時に設定を自動変更
using UnityEditor;
public class AssetPreprocessor : AssetPostprocessor
{
private void OnPreprocessTexture()
{
var importer = assetImporter as TextureImporter;
importer.textureType = TextureImporterType.GUI;
}
private void OnPreprocessAudio()
{
var importer = assetImporter as AudioImporter;
importer.threeD = false;
}
}
http://www.buildinsider.net/consumer/charmofunity/01
http://kan-kikuchi.hatenablog.com/entry/2013/11/25/000144
アセットインポート時に設定を自動変更
AssetPostprocessorクラス
継承してクラスを記述することで

アセット読み込み時の独自の処理を実装できます

using UnityEditor;
public class AssetPreprocessor : AssetPostprocessor
{
}
http://www.buildinsider.net/consumer/charmofunity/01
http://kan-kikuchi.hatenablog.com/entry/2013/11/25/000144
アセットインポート時に設定を自動変更
OnPreprocessTexture関数
テクスチャがインポートされた時に呼び出されます

private void OnPreprocessTexture()
{
var importer = assetImporter as TextureImporter;
importer.textureType = TextureImporterType.GUI;
}

http://www.buildinsider.net/consumer/charmofunity/01
http://kan-kikuchi.hatenablog.com/entry/2013/11/25/000144
アセットインポート時に設定を自動変更
OnPreprocessAudio関数
AudioClipがインポートされた時に呼び出されます

private void OnPreprocessAudio()
{
var importer = assetImporter as AudioImporter;
importer.threeD = false;
}

http://www.buildinsider.net/consumer/charmofunity/01
http://kan-kikuchi.hatenablog.com/entry/2013/11/25/000144
再生中にスクリプトを編集してエラーに
再生中にスクリプトを編集して保存すると
コンパイル後にエラーが出力される
スクリプト編集後に実行を自動で停止
[InitializeOnLoad]
public static class PlaymodeStop
{
static PlaymodeStop()
{
EditorApplication.update += Update;
}
private static void Update()
{
if ( EditorApplication.isCompiling &&
EditorApplication.isPlaying)
{
EditorApplication.isPlaying = false;
}
}
}
http://masa795.hatenablog.jp/entry/2013/05/10/104033
スクリプト編集後に実行を自動で停止
InitializeOnLoad属性
staticコンストラクタを持つクラスに記述すると

エディタ起動時に独自のスクリプトを実行できる

[InitializeOnLoad]
public static class PlaymodeStop
{
static PlaymodeStop()
{
}
}

http://masa795.hatenablog.jp/entry/2013/05/10/104033
スクリプト編集後に実行を自動で停止
EditorApplication.update
エディタで再生中に毎秒約100回呼ばれるコールバック

static PlaymodeStop()
{
EditorApplication.update += Update;
}

http://masa795.hatenablog.jp/entry/2013/05/10/104033
スクリプト編集後に実行を自動で停止
EditorApplicationクラス
スクリプトがコンパイルされたかどうかや

エディタが再生中かどうかを確認できるクラス
private static void Update()
{
if ( EditorApplication.isCompiling &&
EditorApplication.isPlaying)
{
EditorApplication.isPlaying = false;
}
}
http://masa795.hatenablog.jp/entry/2013/05/10/104033
アセットの活用
手順を効率化したい
• Project Settingsの設定
• ゲームオブジェクトの作成
ショートカットを追加する
Extras Toolbar(無料)

http://masa795.hatenablog.jp/entry/2013/06/14/094537
ショートカットを追加する
「Window>Extras」を選択

http://masa795.hatenablog.jp/entry/2013/06/14/094537
配列をコンソールログに出力したい

// 標準のコンソール出力
var array = new []{ "1", "2", "3", “4", “5", };
Debug.Log(array);
配列をコンソールログに出力する
Quick Debugger(無料)

http://terasur.blog.fc2.com/blog-entry-211.html
配列をコンソールログに出力する
// Quick Debuggerのコンソール出力
var array = new []{ "1", "2", "3", “4", “5", };
Debugger.Array<string>(array);

http://terasur.blog.fc2.com/blog-entry-211.html
配列をコンソールログに出力する
二次元配列やコレクションも出力可能
// 二次元配列
Debugger.Array2D<string>(array);
// List型
Debugger.List<string>(list);
// Dictionary型
Debugger.Dictionary<int, string>(dict);
http://terasur.blog.fc2.com/blog-entry-211.html
オブジェクトのパラメータを間違って変更
GameObjectをロック
UnityLock(無料)

http://terasur.blog.fc2.com/blog-entry-487.html
GameObjectをロック
1. ロックしたいオブジェクトを選択
2. 「GameObject>UnityLock>Lock GameObject」を選択

http://terasur.blog.fc2.com/blog-entry-487.html
アプリサイズのボトルネックを見つけたい
テクスチャ

AudioClip

モデル
アプリサイズの内訳を確認
Build Report Tool($5)

http://terasur.blog.fc2.com/blog-entry-472.html
http://plaza.rakuten.co.jp/coronasdk/diary/201305230001/
アプリサイズを確認
使用しているアセットの容量を確認
使用していないアセットの確認と削除
簡単に動きをつける
iTween(無料)

http://www40.atwiki.jp/spellbound/pages/1604.html
エディタ上でiTweenを設定する
iTween Visual Editor(無料)

http://www.cho-design-lab.com/2013/08/07/unity-itween-visual-editor-introduction
アプリの解読や改ざんを防ぐ
CodeGuard($40)

http://masa795.hatenablog.jp/entry/2013/06/29/131336
フォトショのデータをNGUIにインポート
FastGUI for NGUI($20)

http://terasur.blog.fc2.com/blog-entry-337.html
エディタ再生中に変更した値を保持する
PlayModePersist($20)

http://terasur.blog.fc2.com/blog-entry-578.html
ドローコールを減らす
Draw Call Minimizer(無料)

http://terasur.blog.fc2.com/blog-entry-214.html
オススメのパーティクルシステム
"Shuriken Magic" Effect Pack($35)

http://memo.scri.me/entry/2013/02/09/002415
オススメの3Dモデル
First Fantasy for Mobile($20)
オススメの3Dモデル
Low Poly Fantasy Village Pack.01($20)
オススメの3Dモデル
Palace of Orinthalian(無料)
ありがとうございました

More Related Content

PDF
㉖cocos2dを覚えよう!
PDF
知って得するC#
PDF
知って得するC# LINQ to Objects編
PDF
Unity で実装するエイジングテストのお話
PDF
【Visual Studio】開発効率を上げる25個の拡張機能
PDF
Unity エディタ拡張
PDF
知って得するUnity エディタ拡張編
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
㉖cocos2dを覚えよう!
知って得するC#
知って得するC# LINQ to Objects編
Unity で実装するエイジングテストのお話
【Visual Studio】開発効率を上げる25個の拡張機能
Unity エディタ拡張
知って得するUnity エディタ拡張編
2024 Trend Updates: What Really Works In SEO & Content Marketing

知って得するUnity