12
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

YouTube APIでSuperChatを取得してUnity上でお札を降らせる

Last updated at Posted at 2020-06-21

YouTubeのスーパーチャットに反応してUnity上でお札が降るようにしてみます。
1から書くわけではなく、出来合いのものを組み合わせて完成させます。

※随分前に実装したので、記憶が曖昧です。間違ってたらすみません。

#使用ツール
UnityでYoutube Liveのコメント・スパチャを取得できるツール

#完成形

#方法
今回使用するツールの使い方にも書いてありますが、YoutubeCommentのBeginGetComments()関数を呼ぶことでコメント取得を開始でき、OnCommentで新しいコメントがコールバックされ、OnSuperChatでスーパーチャット投稿時にコールバックが呼ばれます。その通りに実装しますが、今回はパーティクルを呼び出して紙幣を降らせることにします。

上記使用ツールをUnityにインポートしましたら、パーティクルを実装していきます。
私はこちらを参考にパーティクルを実装しました。

【Unity】パーティクルで紙ふぶきを散らす

実装後、使用ツールを説明に従って使用可能な状態にしておきます。

その後、スーパーチャットに反応してパーティクルを起動させるよう実装していくわけですが、インポートした使用ツールのExampleフォルダにcsファイルがありますので、こちらを改変していくのが簡単ですので、その前提で進めます。
image.png

まずクラスの開始時にParticleSystem particle;などと宣言しておき、先程実装したパーティクルのGameObjectを代入しておきます。
particle = GameObject.Find("hogehoge").GetComponent<ParticleSystem>();という感じでしょうか。"hogehoge"は各自のGameObject名に書き換えて下さい。updateの中ではFindしないみたいな話はここでは割愛します。

その後、Start内でparticle.Stop();として予め対象のパーティクルを止めておきます。うまいこと設定で止められるならそれでも良いです。

そして、OnSuperChatメソッド内でparticle.Play();(particleの部分は宣言した変数名)と書けば、スーパーチャットが飛ぶたびにパーティクルが実行されます。

YouTubeのAPIはすぐ使い切ってしまうため、そのあたりは調べるなり計算するなりで、自分が最大限使う時間を考慮して取得間隔を設定してください。
上記ツールのYouTube CommentスクリプトのGet Comment Intervalで設定して下さい(秒)。
ちなみに、24時間連続稼働の想定だと60秒に一回の取得です。

【参考】
YouTube Data APIの使用量上限について

よろしくおねがいします(酔っているのでこのへんで)

12
6
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
12
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?