Continue(s)

Twitter:@dn0t_ GitHub:@ogrew

【Unity】スクリプトからフラクタルな造形。

f:id:taiga006:20200126221703p:plain

f:id:taiga006:20200126221706p:plain

※動きます。

f:id:taiga006:20200126204539g:plain

Inspectorの様子

f:id:taiga006:20200126185649p:plain

メモ

child = new GameObject("Fractal Child").AddComponent<Fractal>();

再帰させたいだけなのでただのGameObjectを作成してこのコンポーネント自体をアタッチしている。

            float t = i / (maxDepth - 1f);
            t *= t;
            ......
            mats[i, 0].color = Color.Lerp(Color.white, Color.green, t);

Color.Lerpを使うと、例えばColor.Lerp(a,b,t)でt(0~1)に対してa~bで線形補間ができる。今回でいうと深度が深くなるにつれて色がはっきりとつくようになっている。

transform.localPosition = direction * (.5f * (1 + childScale));

ややわかりにくいが1というのは今見ているスケールに対応し、それにchildScale分を加えている。そうすることによって子オブジェクトが親億ジェクトにくっついているように見える。

参考

ja.wikipedia.org catlikecoding.com