【Unity】Dalayed属性

Unity Delay属性

プレイモードの時、Delayed属性を付けた変数はInspectorで値を変更した直後には値が更新されません。エンターボタンを押下するかフォーカスが移動した時に初めて値が更新されます。

using UnityEngine;

public class Sample : MonoBehaviour
{
    [Delayed]
    public int delayNumber;

    void Update()
    {
        Debug.Log(delayNumber);
    }
}
Unity Delay属性
Unity Delay属性

この画像だと、4を入力した時点だと値は反映されておらず、エンターを押した段階で初めて値が反映されています。

通常だと何が問題か。例えば123と値を入れたい時、通常時、値フィールドにまず1をに入力した時点からログに1が出力されるようになります。次に2を入れた時点で12が出力され、最後に3を入力した時点から123が出力されます。

値の性質によっては、この1や12がランタイムに反映されると困るような時があります。正確な値を入力し終わるまで、ランタイム側に値を反映させたくない場合に使用します。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA