Clusterスクリプトを使ってカウントダウン表示を行うギミックを作成してみました。
ファイル構成
■CountDown(ScriptableItem)
├ num_0_0 ~ num_0_9(SetGameObjectActiveGimmik)※日
├ num_1_0 ~ num_1_9(SetGameObjectActiveGimmik)※時間10の位
├ num_2_0 ~ num_2_9(SetGameObjectActiveGimmik)※時間 1の位
├ num_3_0 ~ num_3_9(SetGameObjectActiveGimmik)※分 10の位
├ num_4_0 ~ num_4_9(SetGameObjectActiveGimmik)※分 1の位
├ num_5_0 ~ num_5_9(SetGameObjectActiveGimmik)※秒 10の位
└ num_6_0 ~ num_6_9(SetGameObjectActiveGimmik)※秒 1の位
CountDownのスクリプト内で現在の日時秒からターゲットの日付までの残りの日時秒を算出し、各位に対応した1~9の画像の表示・非表示を制御する感じです。
スクリプト
$.onUpdate(deltaTime => {
/* 文字列取得 */
let str = updateCountdown();
/* 文字列分解 */
let result = str.split('');
/* 表示の初期化 */
for(let i=0; i<7; i++){
for(let j=0; j<=9; j++){
$.setStateCompat("this", "num_" + i + "_" + j, false);
}
}
/* 再表示 */
let currentYear = new Date().getFullYear();
if(currentYear >= 2023){ // ここの条件にターゲットの年月日を設定
$.log('2023年になりました。');
$.setStateCompat("this", "num_0_0", true);
$.setStateCompat("this", "num_1_0", true);
$.setStateCompat("this", "num_2_0", true);
$.setStateCompat("this", "num_3_0", true);
$.setStateCompat("this", "num_4_0", true);
$.setStateCompat("this", "num_5_0", true);
$.setStateCompat("this", "num_6_0", true);
} else {
for(let i=0; i<7; i++){
$.setStateCompat("this", "num_" + i + '_' + result[i], true);
}
}
});
function updateCountdown() {
let currentYear = new Date().getFullYear();
let nextYear = currentYear + 1;
let newYearTime = new Date(`January 01 ${nextYear} 00:00:00`);
let currentTime = new Date();
let diff = newYearTime - currentTime;
let d = Math.floor(diff / 1000 / 60 / 60 / 24);
let h = Math.floor(diff / 1000 / 60 / 60) % 24;
let m = Math.floor(diff / 1000 / 60) % 60;
let s = Math.floor(diff / 1000) % 60;
let str = String(d);
if(h < 10){
str = str + '0' + String(h);
} else {
str = str + String(h);
}
if(m < 10){
str = str + '0' + String(m);
} else {
str = str + String(m);
}
if(s < 10){
str = str + '0' + String(s);
} else {
str = str + String(s);
}
$.log(str);
return str;
}
ダウンロード
上記一式のパッケージを下記からダウンロードいただけます。
https://metaversenavi.net/countdown.unitypackage
コメント