時間経過でマテリアルが変更していくサンプルの解説
Udonスクリプト作成
サンプルの SendEventOnTimerをU#に書き直し
Udon Graph
U#
public class SendEventOnTimerBySharp : UdonSharpBehaviour
{
public ChangesMaterialOnEventBySharp target;
public float duration = 1;
private float _lastTimerTick = 0;
private void Update()
{
if (Time.time - _lastTimerTick < duration)
{
target.ChangeMaterial();
_lastTimerTick = Time.time;
}
}
}
シーン作成
Cube配置してUdon Behaviourコンポーネントを追加するだけなので詳しい解説は割愛。
Update,FiexdUpdate,LateUpdateの違い
余談ですが、Update,FiexdUpdate,LateUpdateの違いについて説明します。
Update
フレームにつき 1 度呼び出されるメソッド。画面の描写前に呼ばれる。
FixedUpdate
一定間隔で呼ばれるメソッド。物理演算や当たり判定に関する処理はここで行う。具体的に言うとRigidBodyによる移動やColliderによる当たり判定はここは行ってください。
LateUpdate
Update 終了後に呼び出されるメソッド。一般的な使用方法は三人称カメラの追跡で、Updateでキャラクターを移動する処理をして、LateUpdateでカメラがキャラクターを追跡する処理を行えば、カメラが完全に移動したキャラクターに対して追跡することができます。
参考文献
常に実行する処理を作成する