docs.unity3d.com
    目次を表示する/隠す

    Formula ノード

    Note

    バージョン 2019/2020 LTS を使用している場合は、Unity Asset Store から Visual Scripting パッケージをダウンロードしてください。

    Formula は、テキスト式と引数のリストによって論理式や数式を直接評価する強力なノードです。

    Important

    Formula ノードを使用した場合のパフォーマンスは、二分木構造トラバーサルのオーバーヘッド(キャッシュの試行に関わらず) のために、演算子ノードを個別に使用した場合に比べて著しく遅くなります。このノードは毎フレームで使用しないようにすることをお勧めします。

    Formula は、ロジックの場合はブール値、数学の場合は数値を返しますが、どのような型の値でも返すことができます。

    ヘッダー内の最初のテキストフィールドは式自体です。

    2 つ目のテキストフィールドは引数の数です。これはデフォルトで 2 に設定されており、A と B の入力が提供されます。Formula は最大 10 個の引数を持つことができ、これは常にアルファベット順に並べられます。さらに必要な場合、B、C、D、E、のように順に名付けられます。

    例えばこの Formula は、下記を示すブール値を返します。

    • ゲーム開始から最低 10 秒が経過したかどうか。
    • 現在のオブジェクトの名前は Player である。

    引数

    変数名

    変数名を式中で直接使用することができます。例えば、health という名前の Graph 変数に、health > 50 という式を入力するだけでブール値を返させることができます。引数名は以下の優先順位で評価されます。

    1. アルファベット順の引数名 (a - z)
    2. Graph 変数の名前
    3. Object 変数の名前
    4. Scene 変数の名前
    5. Application 変数の名前
    6. Saved 変数の名前

    プロパティとメソッド

    [arg.prop] の表記を使用して、引数あるいは変数のプロパティの値を取得できます。例えば、位置が Vector 3 の Object 変数の場合、[position.x] = 0 を使用して、それが 0 に等しいかどうかを確認できます。パラメーターのないメソッドの戻り値を取得するには [arg.Method()] の表記を使用します。

    ノート: プロパティやメソッドへのアクセスは、AOT コンパイルを必要とするプラットフォームには適さない場合があります。これは、AOT の事前ビルドは名前によってのみアクセスされるメンバのスタブを生成できないためです。

    リテラル

    固定値を割り当てるには以下のリテラルを使用します。

    リテラル 説明 例
    Number 整数または浮動小数点数 3.5
    String アポストロフィーに挟まれたテキスト "Hello World!"
    Boolean ブール値 true, false
    Null null 定数 a != null
    Delta Time Unity フレームのデルタタイム 30 * dt
    Invert Delta Time デルタタイムの逆数 30 / second

    演算子

    全ての一般的な論理演算子と数学演算子に加え、スクリプト内でカスタム演算子のオーバーロードによって定義されたものも、式内で使用できます。

    演算子 操作 ランク 結果 例
    not, ! 論理否定 単項 オペランドの反対 not true
    - 数値否定 単項 オペランドの反転 -5
    and, && 論理 AND 二項 両方のオペランドが true の場合は true (a < 5) and (b > 3)
    or, || 論理 OR 二項 いずれかのオペランドが true の場合は true (a < 5) or (b > 3)
    =, == 等値 二項 2 つのオペランドが等しい場合は true a = b
    !=, <> 不等価 二項 2 つのオペランドが等しくない場合は true a != b
    <, <=, >, >= 数値比較 二項 数値比較の結果 a >= 10
    + 加算 二項 2 つのオペランドの和 a + 5
    - 減算 二項 2 つのオペランドの差 b - 3
    * 乗算 二項 2 つのオペランドの積 12 * a
    / 除算 二項 2 つのオペランドの商 b / 2
    % 剰余 二項 2 つのオペランドを割った余り a % 2
    ?: 条件 三項 条件が true の場合は左のオペランドで、そうでない場合は右のオペランド (health > 0) ? "Alive" : "Dead"

    ~ や >> などの一般的なビット演算子もサポートされています。

    関数

    以下の表に含まれる全ての関数も使用できます。

    名前 結果 例
    abs 指定の数値の絶対値 abs(-1)
    acos 余弦が指定の数値である角度 acos(1)
    asin 正弦が指定の数値である角度 asin(0)
    atan 接線が指定の数値である角度 atan(0)
    ceiling 指定数値以上の最小の整数 ceiling(1.5)
    cos 指定角度の余弦 cos(0)
    exp e の、指定数値によるべき乗 exp(0)
    floor 指定数値以下の最大の整数 floor(1.5)
    log 指定数値の対数 log(1, 10)
    log10 10 を底とする、指定数値の対数 log10(1)
    max 指定された 2 つの数のうち大きい方 max(1, 2)
    min 2 つの数のうち小さい方 min(1, 2)
    pow 指定数値の、指定数値によるべき乗 pow(3, 2)
    round 指定の数値を四捨五入して、最も近い整数あるいは、指定の小数点以下の桁数にします。 round(3.222, 2)
    sign 数値が正の場合は 1、負の場合は -1 sign(-10)
    sin 指定の角度の正弦 sin(0)
    sqrt 指定の数値の平方根 sqrt(4)
    tan 指定の角度の接線 tan(0)
    truncate 数値の整数部 truncate(1.7)
    v2 2D ベクトルを作成します。 v2(0, 0)
    v3 3D ベクトルを作成します。 v3(0, 0, 0)
    v4 4D ベクトルを作成します。 v4(0, 0, 0, 0)
    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)