Unity3.5と4.0の違い

118
UNITY3.54.0の違い TechBuzz】第11Unity開発技術勉強会 121216日日曜日

Transcript of Unity3.5と4.0の違い

Page 1: Unity3.5と4.0の違い

UNITY3.5と4.0の違い【TechBuzz】第11回Unity開発技術勉強会

12年12月16日日曜日

Page 2: Unity3.5と4.0の違い

はじめまして安藤圭吾と申します

株式会社トップゲート所属keigo.andokyusyukeigo

今後とも宜しくお願いします

12年12月16日日曜日

Page 3: Unity3.5と4.0の違い

早速ですが

Unity4を既に試しましたか?

Unity4が出て1ヶ月

12年12月16日日曜日

Page 4: Unity3.5と4.0の違い

まずは

What’s newにある変更点

最適化の話から

12年12月16日日曜日

Page 5: Unity3.5と4.0の違い

コンソール

大量のログ表示によるメモリ使用量の最適化

12年12月16日日曜日

Page 6: Unity3.5と4.0の違い

コンソール

Collapse表示でログ数表示

12年12月16日日曜日

Page 7: Unity3.5と4.0の違い

Switching Platforms

再インポートが必要か検出切替時、

チョー速くなった!

12年12月16日日曜日

Page 8: Unity3.5と4.0の違い

Mesh.MarkDynamic

特にiOSに効果的

CreateVBOのコストを削減らしい

12年12月16日日曜日

Page 9: Unity3.5と4.0の違い

Mesh.MarkDynamic

どれくらい効果があるのか色々議論中

スクリプトでMesh生成直後に呼び出す

12年12月16日日曜日

Page 10: Unity3.5と4.0の違い

RenderTexture.DiscardContents

RenderBufferを破棄することでパフォーマンス向上

RenderTextureが不必要になった時呼び出す

12年12月16日日曜日

Page 11: Unity3.5と4.0の違い

スプラッシュ画像

Android

12年12月16日日曜日

Page 12: Unity3.5と4.0の違い

スプラッシュ画像 iOS

古12年12月16日日曜日

Page 13: Unity3.5と4.0の違い

アイコン画像

iOS

12年12月16日日曜日

Page 14: Unity3.5と4.0の違い

Google Play OBB

自動ダウンロード未サポートの端末で動作

拡張ファイル

Google Play OBB Downloader

12年12月16日日曜日

Page 15: Unity3.5と4.0の違い

Application License

有料アプリケーション用のライセンスサービス

ライセンス

Google Play Application License

Verification

12年12月16日日曜日

Page 16: Unity3.5と4.0の違い

Androidプロジェクト

Unity4から正式サポート

Exportが可能

12年12月16日日曜日

Page 17: Unity3.5と4.0の違い

Androidプロジェクト

いつもの3つ

プロジェクト名+

ActivityNativeActivityProxyActivity

12年12月16日日曜日

Page 18: Unity3.5と4.0の違い

(Player)Activity

UnityPlayer.init()

UnityPlayer.quit()

12年12月16日日曜日

Page 19: Unity3.5と4.0の違い

DebugLogException

Exceptionをコンソールに表示するためのクラス関数public static void

LogException (Exception exception, Object context)

サンプル

追加

12年12月16日日曜日

Page 20: Unity3.5と4.0の違い

DebugLogException

追加

UnityException

MissingComponentException

MissingReferenceException

UnassignedReferenceException

ExceptionはUnity3.5以前からあります

12年12月16日日曜日

Page 21: Unity3.5と4.0の違い

HandheldStartActivityIndicator

インジケータを表示するクラス関数public static void StartActivityIndicator ()

サンプル

追加

12年12月16日日曜日

Page 22: Unity3.5と4.0の違い

HandheldStopActivityIndicator

インジケータを非表示にするクラス関数public static void StopActivityIndicator ()

追加

サンプル

12年12月16日日曜日

Page 23: Unity3.5と4.0の違い

Handheld 追加

12年12月16日日曜日

Page 24: Unity3.5と4.0の違い

Gradient

Colorのアニメーションを可能にするクラス

追加

12年12月16日日曜日

Page 25: Unity3.5と4.0の違い

Gradient 追加

アルファ

12年12月16日日曜日

Page 26: Unity3.5と4.0の違い

Gradient 追加

カラー

12年12月16日日曜日

Page 27: Unity3.5と4.0の違い

Gradient 追加

タイム

12年12月16日日曜日

Page 28: Unity3.5と4.0の違い

Gradient 追加

SetKeys

public void SetKeys (GradientColorKey[] colorKeys, GradientAlphaKey[] alphaKeys)

各キーは最大8つまで

アニメーションカラーをセットする関数

12年12月16日日曜日

Page 29: Unity3.5と4.0の違い

Gradient 追加

Evaluate

public Color Evaluate (float time)

アニメーションカラーを取得する関数

timeは0~1までサンプル

12年12月16日日曜日

Page 30: Unity3.5と4.0の違い

ParticleSystemisStopped

ParticleSystemが停止中かどうか返す変数public bool isStopped

追加

Script Reference

12年12月16日日曜日

Page 31: Unity3.5と4.0の違い

ParticleSystemisPaused

ParticleSystemが一時停止中かどうか返す変数public bool isPaused

追加

Script Reference

12年12月16日日曜日

Page 32: Unity3.5と4.0の違い

考察 なぜ追加?Pause関数があるのに判別する方法

がなかったから

isPlayingだけではstopかpauseか分からない

ParticleSystem 追加

サンプル

12年12月16日日曜日

Page 33: Unity3.5と4.0の違い

InputcompensateSensors

センサー系を画面の向きに合わせて制御するクラス変数

public static bool compensateSensors

追加

加速度、コンパス、ジャイロをサポート

iOSは完全サポートAndroidは一部の端末

12年12月16日日曜日

Page 34: Unity3.5と4.0の違い

RichText 追加

12年12月16日日曜日

Page 35: Unity3.5と4.0の違い

RichText 追加

GUIテキストのマークアップ

<b>HTMLのように</b>

http://docs.unity3d.com/Documentation/Manual/StyledText.html

12年12月16日日曜日

Page 36: Unity3.5と4.0の違い

RichText 追加

<b>太字</b>

12年12月16日日曜日

Page 37: Unity3.5と4.0の違い

RichText 追加

<i>イタリック</i>

12年12月16日日曜日

Page 38: Unity3.5と4.0の違い

RichText 追加

<size=50>サイズ</size>

12年12月16日日曜日

Page 39: Unity3.5と4.0の違い

RichText 追加

<color=orange>カラー</color>

12年12月16日日曜日

Page 40: Unity3.5と4.0の違い

RichText 追加

EditorWindowにも適用される

12年12月16日日曜日

Page 41: Unity3.5と4.0の違い

RichText 追加

TextFieldの文字にも適用されるsizeを大きくしてると見えなくなる...

12年12月16日日曜日

Page 42: Unity3.5と4.0の違い

RichText 追加

<material=2>マテリアル</material>

12年12月16日日曜日

Page 43: Unity3.5と4.0の違い

RichText 追加

<material=2>マテリアル</material>

12年12月16日日曜日

Page 44: Unity3.5と4.0の違い

RichText 追加

ShaderをCutoutにしてAlphaをいじった

12年12月16日日曜日

Page 45: Unity3.5と4.0の違い

RichText 追加<quad material=2 size=20 x=0.1 y=0.1

width=0.1 height=0.1 />

12年12月16日日曜日

Page 46: Unity3.5と4.0の違い

RichText 追加

<quad x=0.1 width=0.1 height=0.1 /><quad width=0.1 height=0.1 />

<quad y=0.1 width=0.1 height=0.1 /> <quad x=0.1 y=0.1 width=0.1 height=0.1 />

12年12月16日日曜日

Page 47: Unity3.5と4.0の違い

RichText 追加

ShaderをCutoutにしてAlphaをいじった

12年12月16日日曜日

Page 48: Unity3.5と4.0の違い

RichText 追加

で、quad実際どう使うの?

12年12月16日日曜日

Page 49: Unity3.5と4.0の違い

Font 追加

Fontクラスで使うよ

12年12月16日日曜日

Page 50: Unity3.5と4.0の違い

Font 追加

textureRebuildCallback

RequestCharactersInTexture

GetCharactorInfo

12年12月16日日曜日

Page 51: Unity3.5と4.0の違い

Font 追加

textureRebuildCallback

RequestCharactersInTexture

GetCharactorInfo

今から説明

あとで

12年12月16日日曜日

Page 52: Unity3.5と4.0の違い

Font 追加

GetCharactorInfo

特定の文字情報を取得

12年12月16日日曜日

Page 53: Unity3.5と4.0の違い

CharactorInfo 追加

文字情報って?文字のUnicode値 (index)

テクスチャにレンダリングされた

フォントサイズ文字のUV座標

12年12月16日日曜日

Page 54: Unity3.5と4.0の違い

CharactorInfo 追加

文字情報って?文字のUnicode値 (index)

フォントサイズこのUV座標をquadで使う

テクスチャにレンダリングされた文字のUV座標

12年12月16日日曜日

Page 55: Unity3.5と4.0の違い

CharactorInfo 追加

UV座標はRectなので<quad

x=0.1 y=0.1 width=0.1 height=0.1

/>

12年12月16日日曜日

Page 56: Unity3.5と4.0の違い

Font 追加

RequestCharactersInTexture

文字がレンダリングされているテクスチャに新たな文字の追加

をリクエストする

12年12月16日日曜日

Page 57: Unity3.5と4.0の違い

Font 追加

どういうこと?

何もレンダリングされていない

Font Texture256 × 256

12年12月16日日曜日

Page 58: Unity3.5と4.0の違い

Font 追加

font.RequestCharactersInTexture("A");

(スクリプトから)リクエスト!

12年12月16日日曜日

Page 59: Unity3.5と4.0の違い

Font 追加

すると...

A がレンダリングされた

Font Texture

12年12月16日日曜日

Page 60: Unity3.5と4.0の違い

Font 追加

レンダリングされたら

font.characterInfo

font.GetCharacterInfo

Font Textureにある全てを取得

特定の文字情報を取得

12年12月16日日曜日

Page 61: Unity3.5と4.0の違い

Font 追加

textureRebuildCallbackについて

12年12月16日日曜日

Page 62: Unity3.5と4.0の違い

Font 追加

動的に文字をレンダリングしていくけど...

12年12月16日日曜日

Page 63: Unity3.5と4.0の違い

Font 追加

動的に文字をレンダリングしていくけど...

これ以上文字が入らない

12年12月16日日曜日

Page 64: Unity3.5と4.0の違い

Font 追加

真っさらな状態にして不要なの削除

自動でFont Textureの再ビルドを行う

12年12月16日日曜日

Page 65: Unity3.5と4.0の違い

Font 追加

Font Textureを再ビルドした時に!

textureRebuildCallbackが呼ばれる

12年12月16日日曜日

Page 66: Unity3.5と4.0の違い

Font 追加

再現コードはこんな感じIEnumerator Start ()

! {

! ! font.textureRebuildCallback = CallBack;

! ! string str = "あいうえおかきくけこさしすせそ...";! ! for (int i = 0; i< str; i++) {! ! ! yield return new WaitForEndOfFrame();! ! ! font.RequestCharactersInTexture (str [i].ToString ());! ! }! }

! public void CallBack ()! {! ! Debug.Log ("CallBack");! }

12年12月16日日曜日

Page 67: Unity3.5と4.0の違い

Font 追加

textureRebuildCallbackで何をする?

12年12月16日日曜日

Page 68: Unity3.5と4.0の違い

Font 追加

quadを使用している時のuv座標更新

Text Meshの更新

12年12月16日日曜日

Page 69: Unity3.5と4.0の違い

Font 追加

勝手に再ビルドされる今までのuv座標は無くなる

どっかで更新しなくちゃいけない

textureRebuildCallback

12年12月16日日曜日

Page 70: Unity3.5と4.0の違い

Font 追加

第一水準を一気にリクエストすると

2048 × 2048

256 × 256

ビルド

12年12月16日日曜日

Page 71: Unity3.5と4.0の違い

AssetStoreOpenAssetStoreのウィンドウを表示するクラス関数public static void Open (string assetStoreURL)

追加

12年12月16日日曜日

Page 72: Unity3.5と4.0の違い

AssetStoreusing UnityEditorInternal

サンプル

追加

assetStoreURLは/content/1234

12年12月16日日曜日

Page 73: Unity3.5と4.0の違い

ImportAssetOptionsDontDownloadFromCacheServer

CacheServerからアセットを

追加

インポートしない

Importerを使用出来る

12年12月16日日曜日

Page 74: Unity3.5と4.0の違い

Property Drawer 追加

12年12月16日日曜日

Page 75: Unity3.5と4.0の違い

Property Drawer 追加

インスペクタに表示されるプロパティのカスタマイズ

を行う

12年12月16日日曜日

Page 76: Unity3.5と4.0の違い

Property Drawer 追加

これが

こうなる12年12月16日日曜日

Page 77: Unity3.5と4.0の違い

Property Drawer 追加

今までCustomEditorを使って...

スクリプトごとにエディタ拡張して...

12年12月16日日曜日

Page 78: Unity3.5と4.0の違い

Property Drawer 追加

これから各プロパティごとにカスタマイズAttributeとして実装するので使い回しが楽

12年12月16日日曜日

Page 79: Unity3.5と4.0の違い

Property Drawer 追加

早速使おう現在は2つのAttributeが用意されている

12年12月16日日曜日

Page 80: Unity3.5と4.0の違い

Property Drawer 追加

RangeAttribute

MultilineAttribute

12年12月16日日曜日

Page 81: Unity3.5と4.0の違い

Property Drawer 追加

RangeAttribute

12年12月16日日曜日

Page 82: Unity3.5と4.0の違い

Property Drawer 追加

MultilineAttribute

12年12月16日日曜日

Page 83: Unity3.5と4.0の違い

Property Drawer 追加

他は自作で。

次のアップデートくらいに追加されるんじゃないかな...

12年12月16日日曜日

Page 84: Unity3.5と4.0の違い

Property Drawer 追加

自作の時、頭に入れておくこと1. Attributeの作成2.インスペクターに表示するための

エディタ拡張

12年12月16日日曜日

Page 85: Unity3.5と4.0の違い

Property Drawer 追加

Attributeの作成using UnityEngine;

public class HogeAttribute : PropertyAttribute{...

}

https://gist.github.com/4250814

12年12月16日日曜日

Page 86: Unity3.5と4.0の違い

Property Drawer 追加

エディタ拡張using UnityEngine;using UnityEditor;

[CustomPropertyDrawer(typeof(HogeAttribute))]public class HogeDrawer : PropertyDrawer{...

}

https://gist.github.com/4250814

12年12月16日日曜日

Page 87: Unity3.5と4.0の違い

Property Drawer 追加

作ってみたSceneNameをEnumで選択できるやつ作ってみたよ!

https://gist.github.com/4251675

12年12月16日日曜日

Page 88: Unity3.5と4.0の違い

UnityObject2

Web PlayerのUnityObject.jsがUnityObject2.jsに

追加

12年12月16日日曜日

Page 89: Unity3.5と4.0の違い

UnityObject2

Web Playerプラグインインストールの強化

追加

12年12月16日日曜日

Page 90: Unity3.5と4.0の違い

UnityObject2ずらーっと

追加

http://docs.unity3d.com/Documentation/Manual/WorkingwithUnityObject.html

12年12月16日日曜日

Page 91: Unity3.5と4.0の違い

WebPlayerデバッグWebPlayerでProfilerが使用可能に

追加

12年12月16日日曜日

Page 92: Unity3.5と4.0の違い

WebPlayerデバッグ使い方はいつも通り

追加

12年12月16日日曜日

Page 93: Unity3.5と4.0の違い

Unity4のこれから

12年12月16日日曜日

Page 96: Unity3.5と4.0の違い

Windows 8

http://www.joystiq.com/2012/08/22/

サポートされます

特に情報を見つけることができなかった...

12年12月16日日曜日

Page 97: Unity3.5と4.0の違い

Ninja Camp

これがあるから今のUnityがある

12年12月16日日曜日

Page 98: Unity3.5と4.0の違い

Ninja CampCodeEditor

2D Blend Mode

RecodingAuto Ragdoll

Memory Profiler

Thread ProfilerShader Graph

12年12月16日日曜日

Page 99: Unity3.5と4.0の違い

CodeEditor

https://github.com/Unity-Technologies/CodeEditor

12年12月16日日曜日

Page 100: Unity3.5と4.0の違い

CodeEditor

12年12月16日日曜日

Page 101: Unity3.5と4.0の違い

2D Blend Nodes

12年12月16日日曜日

Page 102: Unity3.5と4.0の違い

2D Blend Nodes

12年12月16日日曜日

Page 103: Unity3.5と4.0の違い

2D Blend Nodes

12年12月16日日曜日

Page 104: Unity3.5と4.0の違い

2D Blend Nodes

12年12月16日日曜日

Page 105: Unity3.5と4.0の違い

これが実装されるとBlendTypeの追加扱えるパラメータが2つに

http://video.unity3d.com/2077881.ihtml

複雑なアニメーションの作成が簡単

2D Blend Nodes

12年12月16日日曜日

Page 106: Unity3.5と4.0の違い

Recoding

12年12月16日日曜日

Page 107: Unity3.5と4.0の違い

Recoding

アニメーションのレコーディング

メカニム専用スクリプト2-3行書くだけで実現

http://www.youtube.com/watch?&v=Oq6L-2yIofI

12年12月16日日曜日

Page 108: Unity3.5と4.0の違い

Recoding

動画を見る限り逆再生出来るっぽい

その時、他のGameObjectはどうなる?

http://www.youtube.com/watch?&v=Oq6L-2yIofI

12年12月16日日曜日

Page 109: Unity3.5と4.0の違い

Auto Ragdoll

12年12月16日日曜日

Page 110: Unity3.5と4.0の違い

Auto Ragdoll

ラグドールの自動追加

メカニム専用Stateを追加するくらいで簡単Ragdoll設定は自動でしてくれる

http://www.youtube.com/watch?v=ESFrTz_P6fc

12年12月16日日曜日

Page 111: Unity3.5と4.0の違い

Memory Profiler

12年12月16日日曜日

Page 112: Unity3.5と4.0の違い

Memory Profilerメモリ使用率のプロファイラオブジェクトごとのメモリ使用率がわかるメモリ使用率の可視化も出来る(っぽい)

12年12月16日日曜日

Page 113: Unity3.5と4.0の違い

Thread Profiler

12年12月16日日曜日

Page 114: Unity3.5と4.0の違い

Thread Profilerスレッドのプロファイラ

どのタイミングで何が行われているかがわかる今まで見えないスレッドの情報も見ることができる

12年12月16日日曜日

Page 115: Unity3.5と4.0の違い

Shader Graph

12年12月16日日曜日

Page 116: Unity3.5と4.0の違い

Shader Graphノードベースのシェーダーエディタ

今でもStrumpy Shader Editorがある

http://u3d.as/content/strumpy-games/strumpy-shader-editor/1C4

非シェーダープログラマでも触れる日も近い?

12年12月16日日曜日

Page 117: Unity3.5と4.0の違い

Unity4情報はまだ沢山

メカニムの説明してないDirectX11についての説明してない

Texture3DとかCumputeShaderとか

12年12月16日日曜日

Page 118: Unity3.5と4.0の違い

ご静聴ありがとうございました

12年12月16日日曜日