Cluster,Inc. Advent Calendar 2018、25日目の記事です。 qiita.com
概要
そろそろアドベントカレンダーのネタが切れてきたのたぐす(notargs)です。
フラクタルの勉強がしたかったので、Unityの簡単な機能だけを使ってメンガーのスポンジを作図してみました。
Unity2018.3からC#7.3が使えるようになったので、ようやく堂々とUniTaskが使えるようになりました。
UniTask&async/awaitを使うことでコルーチンを(ほぼ)完全に置き換えることができるため、試しにUpdateを使わず、async/awaitだけでGameObjectを動かす処理を組んでみました。
こんな感じのゆっくり動き始めてゆっくり動く止まる関数がQuadraticEaseInOut
です。
何を作るにしてもめちゃくちゃよく使うので、お手軽に使い回せるようにワンライナーで書いてみました。
float QuadInOut(float t) => (1 - Mathf.Pow(1 - Mathf.Abs(t * 2 - 1), 2)) * Mathf.Sign(t - 0.5f) / 2 + 0.5f;
float quadInOut(float t) { return 1.0 - pow(1.0 - abs(t * 2.0 - 1.0), 2.0)) * sign(t - 0.5) / 2.0 + 0.5f; }