Like1つ星
読み込み中...

Clusterスクリプトを使ってリアルタイムで朝・昼・晩のスカイボックスを切り替えるサンプル

Clusterスクリプトを使ってリアルタイムで朝・昼・晩を切り替えるコードを書いてみました。

ファイル構成

■TimeControl(ScriptableItem)

├ Morning(SetGameObjectActiveGimmik)

├ Afternoon(SetGameObjectActiveGimmik)

└ Evening(SetGameObjectActiveGimmik)

Morning、Afternoon、Eveningそれぞれの子に空のオブジェクトや光のオブジェクトやらを入れておいて、TimeControlから時間帯に応じてオブジェクトを表示・非表示する感じです。

スクリプト

let morning = true;
let afternoon = true;
let evening = true;

$.onUpdate(deltaTime => {

  let now  = new Date();
  let hour = now.getHours();
  let min  = now.getMinutes();
  let sec  = now.getSeconds();

  /* 朝 */
  if(hour >= 6 && hour < 9){

    if(morning == true){

      $.setStateCompat("this", "morning", true);
      $.setStateCompat("this", "afternoon", false);
      $.setStateCompat("this", "evening", false);

      morning = false;
      afternoon = true;
      evening = true;

    }

  /* 昼 */
  } else if(hour >= 9 && hour < 18){

    if(afternoon == true){

      $.setStateCompat("this", "morning", false);
      $.setStateCompat("this", "afternoon", true);
      $.setStateCompat("this", "evening", false);

      morning = true;
      afternoon = false;
      evening = true;

    }

  /* 夜 */
  } else if(hour >= 18 && hour < 6){

    if(evening == true){

      $.setStateCompat("this", "morning", false);
      $.setStateCompat("this", "afternoon", false);
      $.setStateCompat("this", "evening", true);

      morning = true;
      afternoon = true;
      evening = false;

    }

  /* それ以外 */
  } else {

    morning = true;
    afternoon = true;
    evening = true;

  }

});

ダウンロード

上記一式のプレハブを下記からダウンロードいただけます。

https://metaversenavi.net/TimeControl.prefab

コメント

タイトルとURLをコピーしました