以下の内容はhttps://sat-box.hatenablog.jp/entry/2018/07/17/184321より取得しました。


【Unity】MinMaxCurveをInspectorで設定したかった

こんにちは、SAT-BOXのコアラです。

ParticleSystemで、これ便利ですよね。
f:id:sat-box:20180717173920p:plain
Random Between Two Curves。名前が長いので、以下「これ」で行きます。

これは、多分ParticleSystemでしか使われてないんですが、視覚的に分かりやすく調整しやすいですよね。

これを他のところでも使いたいなーって思って調べてみたんですが、結果としては僕ではできませんでした。


誰かに作ってもらう魂胆で書き残します。


まず、あれ(これと言っていたもの)は、MinMaxCurveというC#の構造体(struct)をInspectorで変えれるようにしたものです。たぶん。
そして、MinMaxCurveはParticleSystemクラスの中にあります。


次に、ParticleSystemでMinMaxCurveをどうやってInspectorに表示しているかですが、エディタ内部のソースコードに書いてあります。

内部なんでUnityからは見れないんですが、あるときからUnityのC#ソースコードがここに公開されました。
github.com

細かく書くと長くなるので、MinMaxCurveのInspector表示処理をどこでやってるかだけ書きます。

GitHubからzipをダウンロードして、
UnityCsReference-master\Editor\Mono\ParticleSystemEditor\ParticleSystemModules\
ModuleUIHelpers.csの中のGUIMinMaxCurveという関数がおそらく、MinMaxCurveの表示をしています。ParticleSystemでMinMaxCurveを使っているいろんなところがこの関数を呼んでます。

その関数使えばいけるんじゃね?と思いましたが、関係するものほとんどがinternalなものだったので断念しました。
AnimationCurveを2つ使って1から新しいものを作ったほうが楽な気がしました。


僕は諦めましたが、気になった方は試してみてください。そして出来たら教えてください!




以上の内容はhttps://sat-box.hatenablog.jp/entry/2018/07/17/184321より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14