Vectrosityを使ってUGUI上で線や円のアニメーションをする
Vectrosity
アセットストアで販売されているVectrosity - Asset Storeを使うと、UGUI上に線や円といった図形を描画することができます。
今回はVectrosity
を使ってアニメーションを作成します。
例えば、以下のように円の大きさを変えてみたり、
線の終点を変えてレーダーのような表現といったことができます。
ちなみにUGUI上に線や円を描くのに「uGUI でプリミティブな図形を描画できる「UIGraphicAPI」紹介」にあるようにGithubで公開されているものもあります。最初これを使っていたのですが、アニメーションしようとするとパフォーマンスがすごい落ちるのでVectrosity
に変えました。
Vectrosityのオブジェクトを作る
アセットをインポートしたら、Create
->UI
->VectorLine
でオブジェクトを作成できます。
作成するとCanvas
が作られ、中にLine
オブジェクトが作られます。Canvas
は普通のUGUIのCanvas
なのでここで重要なのはLine
の方です。
Line
オブジェクトにはVectorObject2D
コンポーネントがついていて、これをいじって線にしたり円にしたりアニメーションしたりします。スクリプト側からいじりますが、線の太さや色などデフォルトで決めておきたい場合は設定しておいても良いです。
円のアニメーション
小さい円からだんだん大きくなる円をつくります。
以下のソースコードで示すとおりです。
1 | using System.Collections.Generic; |
線のアニメーション
線に関しては頂点の位置を自由に変えればいいだけなので、特に書くことはない。
デフォルトで頂点は2つ作られているので以下のようにすれば線は引ける。
1 | lLine.vectorLine.points2[0] = new Vector2(0, 0); |