ポーズ処理のスクリプト
Unity用ポーズ処理スクリプト書いた🍊 #unity3d
— はっさく (@HassakuTb) 2016年7月7日
子要素をまとめてPause!
止まる:Rigidbody、Mecanim、Shuriken、AudioSource
止まらない:UIの表示部分、コルーチン使った時限処理https://t.co/LjCPKB9qRI
GetComponentsInChildrenでMonobehaviourを全部無効にするみたいな処理。ので、コルーチンは止まらない。コルーチンを一時的に止める方法があったら教えて欲しい。
一度に複数のInspectorを表示する
UnityのInspectorはLockを使うと複数のGameObjectのInspectorを一度に表示できるぞ #unitytips pic.twitter.com/DBVaaqO3if
— はっさく (@HassakuTb) 2016年7月15日
InspectorからInspectorへのドラッグアンドドロップができるので作業効率が上がる。ゲームオブジェクトやアセットを右クリックしたときに新しいInspectorをLock状態で表示する拡張が欲しい。気が向いたら作る。
StandaloneビルドやWebGLビルドでマウス入力を完全無視する
マウス入力を完全無視するStandaloneInputModule
— はっさく (@HassakuTb) 2016年7月18日
お納めください。
中身はStandaloneInputModuleのマウス処理を削除しただけhttps://t.co/piG1EajzO8
StandaloneInputModuleの代わりに使うスクリプト。StandaloneInputModuleからマウス関係の処理を機械的に削除しただけ。
2D用接触判定スクリプト
BoxCollider2Dを利用して上下左右のいずれかにBoxcastするコンポーネントです。
— はっさく (@HassakuTb) 2016年7月18日
お納めください。
接地判定や壁にタッチしているかの判定に使えます。https://t.co/bOMgxwyXti
[Unity][2D]接地判定するスクリプトの強化版。
上下左右にBoxcastする。
Editor拡張でRichTextを使う
今日のUnityTips。
— はっさく (@HassakuTb) 2016年7月19日
Editor拡張でRichText使いたい場合はGUIStyleのrichTextをtrueにすると有効にできるぞ。
おまけで画像の表示はLabelを使うとできるぞ。 pic.twitter.com/eByFSV0Ecu
Editor拡張でも使えるよっていう機能紹介。
uGUIオブジェクトの透明化
今日のUnityTips。
— はっさく (@HassakuTb) 2016年7月20日
uGUIはCanvasGroupコンポーネントのAlphaを使うと子要素をまとめて透明化できるぞ。(スライダーは自作)
使わないUIは透明化ではなくSetActive(false)しよう。 pic.twitter.com/E44FDSIG35
おまけ
— はっさく (@HassakuTb) 2016年7月20日
CanvasGroupのAlphaをスライダーで変更できるようにするInspector拡張。
Editorフォルダに放り込めば使えるぞ。https://t.co/lfJcEQ6Urh
CanvasGroupの機能紹介とAlphaをスライダーでいじれるようにするエディタ拡張。
軸に沿ったオブジェクトの反転
今日のUnityTips。
— はっさく (@HassakuTb) 2016年7月21日
オブジェクトを軸に沿って反転させたいときは、Transform#Scaleの反転させたい軸に-1を掛け算すると簡単に実現できるぞ。 pic.twitter.com/nv2xPKImh2
スケールに-1掛けると反転する。回転を使うよりも簡単で精度がいい。
スナップ移動、回転、拡大縮小
今日のUnityTips。
— はっさく (@HassakuTb) 2016年7月22日
左上のRectToolのうち移動、回転、拡縮ツールはCtrl/Commandキーを押しながらドラッグ&ドロップでスナップ移動、回転、拡縮できるぞ。スナップ量はSnap Settingで設定できるぞ。 pic.twitter.com/POz9TmglCS
GIF
— はっさく (@HassakuTb) 2016年7月22日
とても便利で使う機会が多いので是非使えるようになろう。 pic.twitter.com/hrzL3mHooO
機能紹介。
RectToolのショートカット
おまけ
— はっさく (@HassakuTb) 2016年7月22日
Rect ToolのそれぞれのツールのショートカットはキーボードのQWERTに割り当てられているぞ。 pic.twitter.com/ClMjgxa4d7
Sceneビューでごりごり編集するときは作業効率が上がる。
Inspectorのデバッグモード
今日のUnityTips。
— はっさく (@HassakuTb) 2016年7月23日
Inspectorにはデバッグモードが存在するぞ。
private変数を操作したりプロパティを覗くことができるぞ。Inspector拡張が無効になるので公式コンポーネントのデータ構造を簡単に把握できるぞ。 pic.twitter.com/rCMC6Kpoh2
privateな変数の中身を参照するためによく使う。あとスクリプトからRectTransformを触るときに対応がわからなくなることがあるのでそのときも使う。
配列、リストのInspector操作
今日のUnityTips。
— はっさく (@HassakuTb) 2016年7月24日
配列、リストのInspectorではsizeを触らなくても右クリックメニューから挿入と削除ができるぞ。
要素がオブジェクトの場合は1回目の削除で参照が切れて2回目の削除で要素が削除されるぞ。 pic.twitter.com/YQjeVuZNxG
最近まで知らなくて不便を感じていた。知らないと真ん中らへんにある要素を削除するのがとても大変。
テストを書く
今日のUnityTips。
— はっさく (@HassakuTb) 2016年7月25日
UnityではNUnitを使ったテストが書けるぞ。
正しく動作していることをソースコードベースで保証するのだ。
複雑なダメージ計算処理などで威力を発揮するぞ。 pic.twitter.com/T7t1eV5xnm
zunko is Kawaii が書きたかっただけ。
ゲームプログラミングではインターフェース周りの処理とロジックが密に結びついているケースが多くてあまりテストを書く習慣が無い印象。
実際私は趣味プログラミングではめんどくさくて書かない。
uGUIのアウトラインとシャドー
今日のUnityTips。
— はっさく (@HassakuTb) 2016年7月26日
uGUIにはテキストにアウトラインや影をつけるためのコンポーネントがあるぞ。内部的にはポリゴンの頂点座標をごにょごにょしているので別にテキスト以外にも使えるぞ。 pic.twitter.com/LBF7bYq09d
しかしOutlineコンポーネントでは太いアウトラインを付けることはできない。実装は単に斜め4方向にずらした画像を表示しているだけなので... pic.twitter.com/bJdjfvfmCO
— はっさく (@HassakuTb) 2016年7月26日
アウトラインは1pxまでしかまともに機能しないと思っていい。あと重い。
改善版アウトラインは探せば出てくる。
SpritePacker
今日のUnityTips。
— はっさく (@HassakuTb) 2016年7月27日
同じ場面で使うSpriteはSpritePackerを使って1枚のテクスチャに纏めよう。
ばらばらのスプライトで描画したときに比べて処理が軽くなるぞ。 pic.twitter.com/ayWMbIj46K
例のきりたんゲーでPackした場合としない場合のプロファイラ比較
— はっさく (@HassakuTb) 2016年7月27日
左がPackしてなくて右がPackしたの。
SetPassはMaterialのメソッドでそこそこ重い処理をしてるんですよ。 pic.twitter.com/CEuQycnA75
機能紹介。実際効果的。SetPassのコールが目に見えて減る。
AssetBundleとの相性はあまり良くないと聞いたことがあるけど良く分からない。
Spriteを1枚だけ読み込むことができなくなるからかな?
GetComponet系メソッドで基底クラスの指定
今日のUnityTips。
— はっさく (@HassakuTb) 2016年7月29日
GetComponent系メソッドに基底クラスを指定すれば派生クラスも取得できるぞ。例えばGetComponents<MonoBehaviour>だとMonoBehaviourを継承した全てのコンポーネントを取得できるぞ。
個人的によく使うのは
— はっさく (@HassakuTb) 2016年7月29日
MonoBehaviour
Collider2D
Collider
Renderer
あとは自作の基底クラスかな
ちゃんとクラス設計する意味はある。
型を指定するタイプのメソッドは似たようなことができるのでScriptableObjectとかもちゃんとクラス設計しよう。
オブジェクトを点滅させるスクリプト
例として作ったオブジェクトを点滅させるスクリプト。
— はっさく (@HassakuTb) 2016年7月29日
GetComponentsInChildren<Renderer>で自分含めた全ての子要素のRenderer派生を取得して点滅させるっていう処理をしてます。https://t.co/HMjRPmlTUW
ダメージ受けたときとかに使うやつ。
GetComponetsInChildrenでRenderer系を取ってきて点滅させる。
Shurikenのスケーリング
今日のUnityTips。
— はっさく (@HassakuTb) 2016年7月31日
ParticleSystemのスケーリングはScalingModeをHierarchyにしておくことで正しくスケーリングできるぞ。ちなみにこの機能が実装されたのは結構最近なのであまり知られていないぞ。 pic.twitter.com/ZtkImW0YBt
ScalingModeを設定してなくて上手くスケーリングできずに半日悩んだ。
UnityEvent
今日のUnityTips。
— はっさく (@HassakuTb) 2016年8月1日
UnityEventを使うとInspectorから操作できるイベントを定義できるぞ。
引数付きイベントはUnityEvent<T>を継承した空実装クラスを用意することで使えるようになるぞ。 pic.twitter.com/kOVRkqVLg8
Unityはジェネリッククラスをシリアライズできないので空実装クラスを用意する必要があるぞ。
— はっさく (@HassakuTb) 2016年8月1日
引数に入れるクラスはシリアライズ可能なら自作クラスでもOK。
空クラスを実装することで引数付きイベントもInspectorで扱える。但し引数のクラスはシリアライズできる必要がある。
確か4引数ぐらいまでいけたはず。
TrailRenderer
今日のUnityTips。
— はっさく (@HassakuTb) 2016年8月2日
TrailRendererコンポーネントを使うとノーコードでオブジェクトの軌跡を表示できるぞ。オブジェクトがどういう動きをしたかを記録するためにTimeを大きく指定して開発中だけ有効にするのもいいぞ。 pic.twitter.com/061kyjA5jh
TrailRendererの機能紹介。プロトタイプ段階ではよく使う。
Phisic Material, Phisics 2D Material
今日のUnityTips。
— はっさく (@HassakuTb) 2016年8月3日
Colliderに簡単に摩擦係数と反発係数を設定するPhysicMaterialって物が作れるぞ。3DはPhysicMaterial、2DはPhysics2DMaterialだぞ。 pic.twitter.com/8KTinjnhg5
ProjectSettingからデフォルトの反発係数と摩擦係数を指定できるので全部まとめて設定する場合はここに設定すると良いぞ。 pic.twitter.com/vsWlyLYK0d
— はっさく (@HassakuTb) 2016年8月3日
2Dと3Dで設定できる項目が違って、3Dでは動摩擦係数と静止摩擦係数を別に設定できたり、複数のオブジェクトと摩擦する場合の混ぜ方を設定できるので自由度は高いぞ。
— はっさく (@HassakuTb) 2016年8月3日
摩擦と反発の機能紹介。知らずに1から開発しようとしたことがある。
知った後でも自前で摩擦を実装したりしているけど...
0 件のコメント:
コメントを投稿