100日チャレンジ『100日で50弾!』第12回、三角トルネード弾、星形トルネード弾です。
xy平面に三角形の頂点として3点与えます。三角形の辺上を弾が回ります。それをz方向に動かせばgif画像のようになります。

前、サインカーブに沿って三角形が回る弾を作りましたが、別のロジックでやったので新たに紹介します。平面で三角形を描かせるのには次を使いました。まず
Vector3[] plist = {
new Vector3(-15, -5, 0),//点A
new Vector3(15, -5, 0),//点B
new Vector3(0, 15, 0),//点C
};
で配列を定義しておきます。そして、
Vector3.Lerp(plist[0], plist[1], t);
で、tに0から1までの値を入れるとそれに応じてplist[0], plist[1]を内分する点が得られます。例えばt = 0.3とすると、上の式は三角形の底辺ABを7: 3に内分する点を表します。t = 0 なら点Aです。t = 0(秒)から t = 1(秒)まで、この行をt = 0.1、t = 0.3、……、t = 0.94、……変化させて実行すれば線分上を動く点が得られます。そして残る2辺に対して同様にすれば三角形が描かれます。こうしてxy平面上を点を動かしながら、同時に画面の手前方向(z軸の負の向き)にも動かせば三角に回りながら進む弾のできあがりです。4点にすれば四角形ですし、点をうまく取れば星形にもなります。
↑ 言い訳みたいですが、gifのサイズを抑えるために粗い動画になっています。あんまり星形に見えない……ですが、実物はちゃんとしています!
前にトルネード弾をやったときには平面上で120°離れた3点を用意し、それらを同時に円周上を回しながらサインカーブに沿って動かしていました。今回はたくさん用意した点たちをそれぞれ、三角形の辺上を動かすようにしている、というわけです。
多分今回のやり方の方がいろいろに使えそうな気がします。