みかづきメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

Unity でプロジェクト外部の参照を追加したい

ここでいう外部の参照っていうのは、 NuGet ライブラリだったり、
.NET Framework には含まれてるけど追加参照が必要なものを指します。

NuGet ライブラリを使う場合

公式ドキュメントでは nuget.org から DL する方法が紹介されていましたが、
いちいち落としてくるのも面倒なので、専用の拡張を導入します。

ここから NuGetForUnity の最新版をダウンロードし、インポートします。
インポートしたらツールバーに NuGet の項目が増えているはずなので、
Manage NuGet Packages から入れたいものを入れてあげれば OK。

この方法で導入した場合、良い感じに csproj にも追記してくれるので楽でした。

追加参照ライブラリを使う場合

System.IO.Compression.dll みたいなのを使う場合は、 csc.rsp を作ります。

Assets ルートに csc.rsp を作成し、参照設定を記述します。

/r:System.IO.Compression.dll
/r:System.IO.Compression.FileSystem.dll

次に、プロジェクトを Visual Studio で開いて、通常の C# プロジェクトと同じように、
参照設定を追加します。
もしくは csproj が再生成 (編集) されるような変更を Unity Editor 上で行います。
そうすると、自動的に参照設定が追加されます。
(初めの方法でやっても、 Unity のに設定が置き換えられます。)

ということで、 Unity で外部参照を追加する方法でした。

Particle System の Stop Action が動かないのでなんとかしたい

VRChat で Particle System を当たり判定として使っているときに見つけた仕様。
知らないとハマりがちなので、メモしておきます。

いつも通りの前提条件はこちら:

  • Unity 2018.4.20f1 Personal

実験を行ったリポジトリはこちらにあります。

github.com

少し前の記事で解説しましたが、 Particle System の Stop Action を用いることで、
当たり判定を作る事が出来るのですが、一定条件を満たすと動作しなくなるらしい。

結論だけ言うと、 Particle System の Duration の値を十分小さくする必要がありました。
私の場合は、以下のように設定した場合はうまく動きました。

  • Animation の再生時間は 1s
  • Particle System の Duration を 0.1s

親パーティクルの発生時間がなぜ子パーティクルに影響を与えるのかは知りませんが、
とりあえずこれで解決したのでメモ。

Re: VRChat Inventory System の動作の仕組みについての解説

もしかしたら気になる人がいるかもしれない、 VRChat Inventory System
動作の仕組みについて解説します。
このシステムでは、 Particle System、 Animation および隠しオプションを使用し、
動作を実現しています。

なおこの解説は、現在配布している v0.1.0 時点のものです。
将来の更新によって仕組みが多少変わる可能性があります。
また、私自身は Unity を触ってまだ浅いので、より良い処理方法がある可能性もあります。

続きを読む

テクスチャを切り替えられるシェーダーを作りたい

暫く前に、Texture2DArray を作成する記事を書いたのですが、その続きです。
Texture2DArray を元に、テクスチャを切り替えられるシェーダーを作ってみます。

続きを読む