はじめに
絶対に公式関数でありそうな気がする、数字のカンマ区切り。
調べても調べても自作拡張機能とかの話ばかりで、なんかスッキリしないのでJavaScriptでの記述を探しました。
ChatGPTのある時代で良かった。
答え
右クリック「追加」「JavaScript」から。
条件の無いとこで大丈夫でした。
「JavaScriptに渡すオブジェクトを選択して下さい」は無視して良いっぽいですね。
(ソースコード)
// カンマ区切りにする関数
function formatNumberWithCommas(x) {
if (x < 10000) {
// 10000未満なら小数点以下1位まで表示
return x.toFixed(1).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
} else {
// 10000以上なら小数点以下を表示しない
return Math.floor(x).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
}
// グローバル変数`Count`の値を取得
var countValue = runtimeScene.getGame().getVariables().get("Count").getAsNumber();
// カンマ区切りに変換
var formattedCount = formatNumberWithCommas(countValue);
// 'CountText'という名前のテキストオブジェクトを取得
var countTextObject = runtimeScene.getObjects("CountText")[0];
// テキストをカンマ区切りにした値に設定
countTextObject.setString(formattedCount);
拡張(10000未満なら小数点以下1位も表示する)
関数部分を変更
// カンマ区切りにする関数
function formatNumberWithCommas(x) {
if (x < 10000) {
// 10000未満なら小数点以下1位まで表示
return x.toFixed(1).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
} else {
// 10000以上なら小数点以下を表示しない
return Math.floor(x).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
}
終わり