読者です 読者をやめる 読者になる 読者になる

unity study

Unityでサクッとモックを作れるようになることを目指して、基本的なテクニックを抑えていく過程を残すブログのつもりだったけど、今はただ自分のトラブルシューティングメモになってるブログ

スプライト上を滑らかにカメラを動かす

下記の要件でカメラを動かしたいな、と思ってやってみた。
・マウス、タッチでカメラを移動
・カメラの移動範囲は、スプライト外が写り込まない範囲
・さっと動かして離すと、慣性でちょっと動く
・画面まで行くと、ちょっと押し戻される
・マウスホイール、ピンチ操作で拡縮
・拡縮も、慣性でちょっと動く
簡単に言えばキャンクラのマップでの操作をやりたい、って感じかな。
以前、実装してみた時よりかは幾分シンプルには実装できたかな。

多少工夫した点
・ドラッグ操作中は、カメラ位置だけでなくRigidBody2D.velocityも同時に更新した。
 こうするとわりといい感じに動くようになった気がする。
 前者だけだとパッと離した際に動かないし、後者だけだと動かし始めがもっさりする。
・orthographicSizeの更新に使う値用に、RigidBody2Dを使った。
 滑らかに減衰する式とか考えるのが面倒なので、x成分だけを使うサンプリング用のRigidBody2Dを作って、それを動かしてx成分をサンプリングした。


スプライト上を滑らかにカメラを動かすスクリプト