Houdini 20.0 Unity

Unityスクリプト

既存のUnityコンポーネント派生スクリプトは、カスタムアトリビュートを介してアセットの出力GameObjectに取り付けることができます。 さらに、オプションの文字列引数を使用して、そのスクリプトの関数を呼び出すこともできます。 これは、アセットが完全にクックされ、すべての出力が生成された後に実行されます。 指定したコンポーネントは、GameObjectがまだそれを持っていない場合にのみ追加されることに注意してください。 ただし、関数は再クックされる度に呼び出されます。

アトリビュートは、 文字列 タイプの Detail アトリビュートで、名前は unity_script でなければなりません。次のような形式を使用します:

script_component_name:function_name:argument

script_component_nameは、Unityコンポーネント派生クラスの名前である必要があります。

function_nameは、コンポーネント内の関数の名前である必要があり、オプションです。 関数を呼び出す場合、そのクラスには[ExecuteInEditMode]タグも付いていなければなりません。

argumentは任意の文字列値で、オプションです。 これを使用すると、任意の値をパックして送信し、受け側で解析させることができます。

例えば、以下のTest.csというスクリプトがあるとしましょう:

[ExecuteInEditMode]
public class Test : MonoBehaviour
{
    public string _msg;

    void HDACallbackWithMsg(string msg)
    {
        Debug.Log("Callback with msg: " + msg);
    }

    void HDACallbackNoMsg()
    {
        Debug.Log("Callback with no msg");
    }
}

この場合、カスタムアトリビュートは、コールバックに応じて以下のいずれかになります:

スクリプトの取り付けのみ。コールバックはなし:

Test  

スクリプトを取り付け、引数なしでコールバック:

Test:HDACallbackNoMsg  

スクリプトを取り付け、引数ありでコールバック:

Test:HDACallbackWithMsg:hey this is a message

スクリプト名の間にセミコロンを追加することで、複数のスクリプトを取り付けることができます:

ScriptA:FunctionA:MsgA;ScriptB:FunctionB:MsgB;ScriptC:FunctionC:MsgC

動作しているサンプルを確認したい場合は、Unityで _HoudiniEngineUnity/Examples/HEU_Example_Unity_Script.hda_ をロードしてください。 アセットの出力GameObjectに _HoudiniEngineUnity/Scripts/Examples/HEU_ScriptCallbackExample.cs_ を取り付け、“Hello”というメッセージを含む引数で関数を呼び出します。

Unity

はじめよう

プロジェクトのセットアップ

Houdini Engineを使用する

リファレンス