UnityのTextureで線が繋がるお絵描きをする

miso-engine.hatenablog.com
oFでお絵描きしたら、今度はUnityでもやってみる。先人たちが結構やっているので、まず参考リンクから。
Unityでテクスチャにお絵描きしよう - おもちゃラボ

点を打つのではなく線を引く

上記の実装だと点なので、oFでもやったように線にしよう。Unityではテクスチャに対する描画系のメソッドが一切ないからよりプリミティブな実装が必要になる。「ブレゼンハムのアルゴリズム」というものがあるので、それを利用した。
ブレゼンハムのアルゴリズム - Wikipedia

実際のコードはこちらのQiitaの記事が参考になったというかほぼ同じになったので掲載しない。Qiitaを参照して欲しい。
DXライブラリとブレゼンハムのアルゴリズムを使って線分を描画 - Qiita

線にする条件 マジックナンバー0.12

oFのときは線にするかどうかをマウスイベントで判断していたが、マウスイベントを渡す実装がちょっと手間だったので描画メソッド呼び出しの間隔で判断するようにした。つまり前回の描画メソッドの呼び出しからの秒数によって前回打った点と今回の点との間で、線を描くかどうかを決めるという仕組みだ。これは非常にうまくいった。今回のプロジェクトでは0.12秒以内だといい感じだった。最初は0.5秒にしていたが、そうすると例えばひらがなを書くと指を離したはずなのに繋がってしまっていた。というわけでマジックナンバー0.12、オススメです。マウスイベントによって分岐させるよりもシンプルに書けるし。

消しゴム

消しゴムは色をColor.clearにすることで簡単に実現できる。UI的にはペンよりもブラシの幅を太くするとしっくりくる。