最近Inputばっかりですが、まあそういう時期もある。
この本をやります。
2015年と少し古いですが、全然問題ありませんでした!
めちゃくちゃ役に立ちました!uGUIのデフォルトの機能で知らない機能いっぱいでした
- Canvas
- スライス
- Mask
- スクロール
- 入力フィールド
- Toggle
- アンカー
- 文字効果
- UIの遷移
- Layout Group
- Raycast
- Content Size Fitter
- スクリプト
- 感想
Canvas
UI Scale Modeを変更できる

スライス
Sprite Editorを押すと分割(スライス)ができる

Set Native Sizeで元の画像の大きさになる。

Mask
Maskコンポーネントをつけたものの下に置くとマスクされる

文字でもマスクできる。

スクロール
MaskをつけたオブジェクトにScroll Rectをつけて、Contentに下のカエルをセットするとスクロールできる。

ついでにScrollbarUIを作って、

Scroll Rectにセットすると

バーができた!簡単!!Unityすごい

入力フィールド
Input Fieldをつけると入力できる!知らなかった!!


入力するときはリッチテキストは使わない
Content Typeを選べる。

PasswordとかPinだと****になる

Toggle
Toggle Groupをからのオブジェクトにつけて、トグルに設置する。




アンカー
optionキーを押しながらアンカーを設定すると位置が変わる

文字効果
テキストにアウトラインやドロップシャドウをつけられる!!!


UIの遷移
ボタンなどのUIについているTransition。AnimationにしてAutomativボタンを押すと

自動でAnimatorで遷移が作られる。

またnavigationをVisualizeボタンを押すと、このように左右キーなどでボタン選択する際の遷移が表示される。

Layout Group

親オブジェクトにつけると、こオブジェクトが整列する

Spacingをつけたら隙間が空く

こんな機能あったんだ!UnityのUI構成もやりやすそう

Raycast
Raycastを無視してほしいUIにはCanvasGroupをつけて、Blocks~のチェックを外す

Physics Raycasterをカメラにつけると3DオブジェクトにRaycastを飛ばせる

こちらの通りにやったら、クリックしたらキューブが消えるという動作をノンプログラミングでできました。
消したいものにこんな感じでEventTriggerを設定したら消えました。

Content Size Fitter
文字の長さに合わせてrectの大きさを変える

スクリプト
[SerializeField]
private Image Player;
Dynamic boolとStatic Parametersに分かれてる

GameManager.csってするとアイコンが変わる?

enum関数?はswitch使う時に役立つ?
インターフェイス
ドラッグとかを実装する時スクリプトのmonobehaviorの後にIBeginDragHandler, IDragHandler, IEndDragHandler,ICanvasRaycastFilterをつける
itween
揺れも表現できる
float degree = isCritical? 0.06f : 0.02f;
iTween.ShakePosition(gameObject, iTween.Hash(
"x", degree,
"y", degree,
"islocal", true,
"time", 0.5f
));
Animation curve
Animation curveはインスペクタで簡単に使える

感想
古いからパラパラ見るぐらいかな〜って思ってたら、めちゃくちゃ役に立って全部きっちり読みきりました。
サンプルプロジェクトもダウンロードできるので、再現しながら3つの小プロジェクトと1つの大プロジェクトを通して理解が深められます。

小プロジェクトと大プロジェクトの章の間にリファレンスページ?みたいな、uGUI関連の機能を全部説明した章があるのですが、すごくよくまとまってました。
あとuGUIって本当に全く変更がないんですね。
この本のプロジェクトはunity4.6〜5ぐらいの時に作られたようですが、uniyu2017.3でも全く問題なく動いたし、その他記述も全部今のバージョンと同じでした。
