UniteのUnity2Dソースいじってみた | とあるプログラマーのブログ

とあるプログラマーのブログ

Unityやblender、Live2Dについて書いていきます!

Unite2014で公開されたサンプルソースをちょっといじってみました。
書かないと忘れるので使い方とかメモしておきます


とりあえず各シーンを1つずつ解説してみるよ~


目次
 1. HD/SD画像の切り替え
 2. 2Dアニメーションの再利用
 3. スプライトの前後関係
 4. カメラのスケール
 5. ピクセルパーフェクト
 6. 2Dのジョイント



1. HD/SD画像の切り替え
 【シーン名 : 1 hd sd.unity

 高解像度と低解像度を簡単に入れ替えるサンプルです。
 端末ごとに解像度を変える時に便利かと思います。
 
 Resources配下に以下の2画像があります
 ・dealwithit@SD.png(128x128サイズ)
 ・dealwithit@HD.png(1024x1024サイズ)

 この画像をスクリプトで切り替えてます。

 ChangeQualityオブジェクト - [ChangeQuality.cs]

 AssetBundleでのソースもあったけど、Pro持ってないので解説は省きます


2. 2Dアニメーションの再利用
 【シーン名 : 2 animation reskinning.unity

 アニメーションを設定したキャラの表示を変えるサンプルです。
 1つアニメーション作れば他のキャラにも再利用できるかと思います。
 
 Resources/Characters配下に以下の4画像があります。
 ・character1.png
 ・character2.png
 ・character3.png
 ・character4.png

 この画像名をスクリプトの引数にします。

 Player1オブジェクト - [ReSkinAnimation.cs]

 実行してPlayer1のInspectorのSpriteSheetNameの値を変えるとこんなかんじ



3. スプライトの前後関係
  【シーン名 : 3 quarterview sorting.unity

 2Dスプライトの前後関係は、Sorting LayerとOrder in Layerで行います。
 そのOrder in Layerを自動で設定してくれるサンプルです。

 各スプライト - [IsometricSpriteRenderer.cs]
 

 このスクリプトでマップ配置時に自動で奥行きを設定してくれる
 

 ※ 3、4は同じ構成です。説明のために2つのシーンに分けたと思います


4. カメラのスケール
 【シーン名 : 4 camera scaling.unity

 カメラのスケールを簡単に管理するサンプルだと思います。
 端末による解像度の違いを解消できるのだと思います。

 カメラ - [Scale Camera.cs]
 CameraのInspectorにあるScale Cameraにチェック。
 値を変更するとカメラのスケールが変更できる。
 



5. ピクセルパーフェクト
 【シーン名 : 5 pixel perfect sprites.unity

 ピクセルパーフェクトにするサンプルです。
 ピクセルパーフェクトでないと画像がぼやけてたりするらしい。
 
 カメラ - [Pixel Perfect Camera.cs]
 CameraのInspectorにあるPixels To Unitsの値をいじると確認できる
 



6. 2Dのジョイント
 【シーン名 : 6 Physics joints.unity

 2Dのジョイントのサンプルです。これは講演で解説なかったと思います。
 
 3つのタルに別々のジョイントがセットされてる(スクリプトはなし
 実行してシーンビューでいじって確認できます

 ・Hinge Joint 2D → 接続箇所に回転軸があるジョイント(振り子やドアとか)
 

 ・Slider Joint 2D → 直線上をスライドするジョイント(上下する障害物とか)
  動作がよくわからないので画像なし
  
 ・Spring Joint 2D → スプリング的なジョイント
 


 4と5のソースの違いと使い方がいまいち分かってないです...
 


[参考URL]
 Slideshare - Unity2Dのよくある問題とその解決方法