devlog [naru design]

プログラミングやテクニカルな内容の覚え書き。

デフォルトではパーティクルはスプライトの上に表示されるが、スプライトの下にパーティクルを表示したい。

Renderをカスタマイズして、スプライトの下に表示されるパーティクルを追加しようとしたが失敗。
パーティクルの上に表示されるスプライト(マテリアル)を作成したら上手く行ったのでメモ。

手順

レンダーのカスタマイズ

builtins/renderフォルダのdefault.renderとdefault.render_scriptをコピー

renderフォルダを作成し、その中にペースト。ファイル名をcustomに変更

custom.render_scriptのinit関数を修正(ハイライト行を追加)

custom.render_scriptのupdate関数を修正(ハイライト行を追加)

custom.renderのScriptをcustom.render_scriptへ変更

プロジェクトのレンダーにカスタマイズしたrenderを設定

マテリアルの作成

builtins/materialsフォルダのsprite.materialをコピー

materialsフォルダを作成し、その中にペースト。ファイル名をsprite_above_particleに変更

materialのタグを変更

マテリアルを設定

パーティクルより手前に表示したいスプライトへマテリアルを設定する

参考

How do I make particles draw behind other objects based on Z position?
https://forum.defold.com/t/how-do-i-make-particles-draw-behind-other-objects-based-on-z-position/121

EditorWindow上のボタンを押した時に、パス指定したファイルをVisual Studioで開くサンプル。

デフォルトのエディタがMonoDevelopならMonoDevelopで開くかも(未確認)。

unity-extension-open-file-visual-studio

最初、OpenFileAtLineExternal()で出来るかと思ったが、何故かファイルがMonoDevelopで開いてしまった。

エクスプローラーで任意のフォルダを開いた状態で、Shiftキーを押しながら右クリックメニューを開く。

shift_plus_right_click_menu

メニューから「コマンドウィンドウをここで開く」を選択する。

Android SDKに含まれるadbを実行しようとしたとき、コマンドウィンドを開いてadbのあるフォルダまで移動するのは面倒。予めエクスプローラーでadbのあるフォルダを開いておき、コマンドウィンドウをここで開くを実行すれば簡単にたどり着ける。

Lightwave/Modeler用スクリプトです。

以前公開した「LScript:背景レイヤー選択の順送り/逆送り(2)」の前景バージョンです。

背景レイヤーの選択を固定したまま前景レイヤー選択を順送り、逆送りすることが出来ます。

それぞれをメニューに登録しておけば、Layerパネルを操作せずにメニューボタンやショートカットキーでレイヤーの選択状態を変更できます。

anim_selnextprevfg

続きを読む

LerpTextColor

内容に変化のあったテキストに注目させたいときなどに使う。

uGUIのTextへ以下のスクリプト(LerpTextColor.cs)を追加。

LerpTextColor_Inspector

残念ながら現在のUnityには日本語ドキュメントが同梱されていません。Unityから開くヘルプは英語のみになっています。インターネット(Unityサイト)には日本語ドキュメントが用意されているので都度開いて調べるなどしていると思います。

そこで以前から興味があったChrome拡張機能を作って、なんとかボタン一発で日本語ドキュメントを開くことが出来ないか?と言うことで試しに作ってみました。

動作確認はWindows7上でのみおこなっています。Macでどのような動作になるかは未確認です。

ソースと拡張機能パッケージファイルは以下のGitHubにあります。

ChromeExt-OpenUnityJpDoc
現在開いている英語ドキュメントに対応する日本語ドキュメントを開く
https://github.com/narudesign-sekig/ChromeExt-OpenUnityJpDoc

拡張機能をインストールするとChromeの右上にアイコンが追加されます。
chrome_ext_openjpdoc

ChromeにUnityの英語ドキュメントが表示されている状態で、このアイコンをクリックすると、Unityサイトの日本語ドキュメントが表示されます。

GitHubのソースを見ると分かりますが、単純にドキュメントのアドレスの一部を正規表現で拾って置き換えて表示しているだけです。

ヘルプから表示されるローカルの英語ドキュメント

file:///C:/Program%20Files/Unity535p2/Editor/Data/Documentation/en/Manual/class-Transform.html

Unityサイトに有る日本語ドキュメント

http://docs.unity3d.com/ja/current/Manual/class-Transform.html

黒字の部分は共通。赤文字部分が英語ドキュメントとを日本語ドキュメントで異なっています。

注意:あくまでアドレスを変えて表示しているだけなので、該当するページがないと表示されません。

OnValidate()メソッドを使うことで、シーンを開いた時にScriptableObjectの内容を即座にシーンへ反映することが出来る。

スクリプトがロードされた時やインスペクターの値が変更された時に呼び出されます(エディター上のみ)
※公式ドキュメントMonoBehaviour.OnValidate()より抜粋

onvalidate

12-15 : OnValidate()はエディタ上でしか呼び出されないので実行時のためにAwake()に記述。
17-20 : OnValidate()がシーンを開いた時に呼ばれる。
29 : ScriptableObjectの内容をシーン上へ反映する。

スクリプトでドロップダウンにアイテムを追加するには、Dropdown.optionsに追加する。

optionsを変更した後はRefreshShowValue()メソッドで表示を更新する。

13-15 : ドロップダウンにアイテムを追加する。
17 : RefreshShownValue()が無いと最初に選択しているアイテムが表示されない。

Unity5.3.3p3

1 / 2812345...1020...最後 »