レポート一覧
- Unity パフォーマンス・チューニング
- Unityプロジェクトをひも解き把握するには
- エディター拡張マニアクス 2015
- MOBIUS FINAL FANTASYにおけるUnity開発事例
- 白猫プロジェクトの裏側!~パフォーマンスチューニングとリアルタイム通信の全て~
- Unity × Sprite Animation
- Unityを利用したスマートフォン向けゲームアプリ開発へのアプローチ方法
講演ファイル
はじめに
Unity 5.1 ベースの話
スプライトアニメーションを題材としたエディター拡張の話
- 従来のスプライトアニメーションの作成方法
- Projectビューで複数のスプライトを選択してSceneビューにD&D
- Unity5.1からは複数のスプライトを選択して右クリックして「Create/Animation」
- AnimationCiipが作成されるがInspectorビューで中身を確認できない
- InspectorビューをDebugモードにすると確認できる
- AnimationCiipが作成されるがInspectorビューで中身を確認できない
CustomPreview属性
- テクスチャやアニメーションの再生をプレビューする場所を拡張できる
[CustomPreview(typeof(AnimationClip))]
public class SpriteAnimationPreview : ObjectPreview
{
}
- プレビューは複数のカスタムプレビューを持てる
- タイトルの部分がドロップダウンメニューになる
- ちょっと残念なところ
- デフォルトで表示させるプレビューを設定できない
デフォルトプレビューをオフにする方法
[CustomEditor(typeof(AnimationClip))]
public class AnimationClipEditor : OverrideEditor
{
public override bool HasPreviewGUI()
{
return false;
}
}
Spriteアニメーションをスクリプトで作成する方法
- ObjectReferenceKeyframe
- Keyframeのオブジェクト参照版
- float値の代わりにObjectを設定することができる
- EditorCurveBinding
- どのプロパティをアニメーションさせるかのキー
- キーはシリアライズ可能なデータのみ
- AnimationUtility.SetObjectReferenceCurve
- 指定したAnimationClipの特定のキーに特定の値を設定する
AnimatorOverrideController
- ステートマシンはそのままで戦士、格闘家、魔法使いのようにスプライトだけを変更したい時など
- アニメーターコントローラーのアニメーションを上書きするオーバーライドコントローラー
オススメの機能
- ReorderableList
- 使うと配列が見やすくなる
- AssetDatabase.GenerateUniqueAssetPath
- 同名のアセットがあってはだめなのでユニークな名前にする
- EditorApplication.delayCall
- インスペクターアップデート時に呼び出されるデリゲート
ScriptableWizard
- 対話形式でアセット作成・編集できる
- 常に前にポップアップ
- 状況に合わせてhelpやerrorを表示できる
Unity5の新機能
- UnityEditor.InitializeOnLoadMethod
- InitializeOnLoadのメソッド版
- UnityEditor.Menu
- メニューにチェックをつけるためのAPI
- UnityEngine.HelpURLAttribute
- はてなマークのジャンプ先のURLを変更するための機能
- GUI.Scope
- BeginHorizontalやEndHorizontalをIDisposableでラップしたもの
おまけ
- SceneViewクラス
- Editor.OnSceneではなく、グローバルなonSceneGUIDelegateがある
- シーンビューを操作できる様々なAPIがある
- PojectWindowUtilクラス
- メニューからアセットを作成するときに使用されるAPI
- ProjectWindowUtil.CreateAssetは覚えておくと絶対便利
- ActiveEditorTrackerクラス
- 現在インスペクターに表示されているEditorオブジェクトを管理するAPI
- Editorオブジェクトを操作するときに便利
- UnityStatsクラス
- 現在の描画に関する情報などを取得するためのAPI
- ComponentUtilityクラス
- コンポーネントのコピーが行えるAPI
- InternalEditorUtilityクラス
- なんかいろいろ面白いAPIがあるクラス
- タグやレイヤーの一覧が取得できたり
- UnityのPreferenceフォルダのパスが取得できたり
- オブジェクトをシリアライズできたり
- なんかいろいろ面白いAPIがあるクラス