Edited at

【Unity】UniRxを試そうとしたらActionが見つからなかった話

More than 1 year has passed since last update.


結論

Actionを使うスクリプトの上部でusing System;と記述する


もうちょっと詳細

ActionはUniRxの名前空間ではなくSystemで宣言されており、Unityのスクリプト生成時のデフォルトではSystem.Correctionsが指定されているため、手動でもう一階層上のSystemも参照できるようにしないといけなかったんですね。

Action自体はUniRxの機能ではなくC#が提供しているデリゲートの一種だよ、というのが今回のオチです。


より高度な解決法

VisualStudioでJetBrains社の「ReSharper」というアドオンを用いることで、必要な名前空間を動的にスクリプトへ追加することができるそうです。

他にも様々な便利機能が含まれる有料のツールですが、学生の間は無料で使えるとのこと。また、30日間のトライアル版もあるので、とりあえず使ってみて購入を検討することもできます。

情報を提供してくださったtorisoupさんにこの場をお借りして御礼申し上げます。


事の発端

最近UniRXが使えるようになりたいと思ってオブジェクト指向のSOLID原則やらReactiveExtentionsの仕組みやらを勉強していたのですが、いざ実装してみようと思ってusing UniRx;を書いたのにActionが使えない......という事態に陥ったんですね。

「UniRx Action」でググってもパッと答えが出てこなかったのですが、いくつか使用例を探したら無事解決できました。


コメント

長年C#やその他のプログラミングをしている方からすれば何ともお粗末なトラブルだったのですが、最近一層Unityを始めてみる方が増えているようなので、こんな些細なことでも記事にした方がいいのかなぁと思った次第です。

この記事が役に立った方がいらっしゃいましたら、私と一緒に「クラスの使い方が分からなければまずリファレンスを探せ」と胸に刻みましょう。