LoginSignup
1
0

More than 1 year has passed since last update.

【Unity】Spaceship Demoのスクリプトを分析してみた。

Last updated at Posted at 2023-05-05

自己紹介

今度、大学にUnity Japanの人が来ると聞いて大興奮の大学生。

経緯

Unityのハッカソンに向けて少し勉強したいと思って、前から気になっていたインタラクティブなVFXに挑戦することに。
まずはデモの理解からだろうと思ってやってみます。誤情報注意。

Spaceship Demoとは

Unity公式が配布するVFX Graphのデモ。
VFX Graphの開発者がVFX Graphを使って制作しているようでこれの理解をすればきっと強くなれる。

公式解説動画(日本語吹き替え)

我らがKeijiroさんの解説動画(まじで尊敬してます。ありがてぇ)

リポジトリ

今回の趣旨

VFXのノードなどについては上に添付した2つの解説動画でしっかり解説されているのでスクリプト周りを中心に書きたいと思います。そもそも私に理解できるのでしょうか。

ARUIIntaractive.cs

1つ目に上げた吹き替えのほうの解説動画でインタラクティブなVFXには全部アタッチされているといわれていたこのスクリプト、さぁどんなのかな!

クラス属性

このクラスの属性には[RequireComponent(typeof(SphereCollider))]が指定されています。
このスクリプトを使うにはSphereColliderが必要だよってことですね。
個人開発だとあんまり使わなかったりしますが、絶対に使ったほうがいい。

継承

Intaractiveなるクラスが継承されていますね。あとから触れますか…

OnHoverInとOnHoverOut

見慣れない属性と見慣れない型を使った変数が2つありますね。

ReorderableList属性

Re order able List = 並び替え可能なリストですね。
Unity公式が提供するエディタ拡張だそう。詳しく解説してくれている記事があるのでリンクしておきます。

Callable型

ここで、速報です。この型、別パッケージのGameplay Ingredientsから提供されているようです。
流石にこれまで解説していると厳しいのでドキュメントを貼っておきます。

私の認識はちょっと便利なUnityEventです。(有識者の方あってますか…?)

Hover関数

どうやら、処理から推測するにマウスがオブジェクトに入ったときと出たとき呼び出される関数のようですね。

引数

IntaractiveUser

これも、Gameplay Ingredientsのクラスでした。このパッケージ理解のほうが大事…?

State

これは現在マウスがオブジェクトに入っているか出ているか…というもののようですね。

処理内容

stateによってそれぞれの処理を走らせるというだけですかね…?

CanInteract関数

これは、overrideついていることから継承から来ている関数ですね。
操作できるかどうかを返す変数だそうです。

処理は下の関数と最大距離を比較しているようです。
なんで2乗しているかは下のスクリプトを見れば分かる!

このスクリプトのまとめ

ホバーの処理を書く用のクラスでしたね。
ただ、これだけでは動かないのは明白でしたね。
あとGameplay Ingredientsが気になるお年頃になりました。

Interactive.cs

先ほどのARUI Interactiveクラスの親クラスを見ていきましょう。
といっても特にみる場所はないかもしれません。

OnEnableとOnDisable

これを見るに、これでIntaractiveManagerに登録しておくことで次に紹介するInteract関数が呼び出されるっぽいですね。

Interact関数

if文の中身がなぜ2つあるのかは分かりませんが、操作できる条件がそろっているか確認しOnInteractに登録されているイベントを発火させているようですね。

このスクリプトのまとめ

なんかARUIIntaractiveが動く原理を垣間見た気がします。
でも、結局はGameplay Ingredientsを理解しないといけなさそうですね。

今日はここまで!

VFXの勉強をしに来たはずが、面白そうなパッケージGameplay Ingredientsに出会ってしまいました。
というか全くVFXの勉強はできてないですね。

Gameplay Ingredientsに関しては日本語記事が全くないので今度調べてまとめます。
お楽しみに!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0