ボクステ公式ブログ

2026年
2025年
2024年
カテゴリ
3D

Ad SHOOt(アドシュー)Steam通常バナー
[Unity6.2]Consoleの重複ログ折りたたみを解除する方法[Collapse]
以下に述べる内容は、Unity6.2(Ver.6000.2.7f2)についてものです。

⚠️これより古い、または、新しいバージョンでは、当記事とレイアウト等の異なる可能性が高いのでご注意ください。

[ログを折りたたむCollapse]

Console(コンソール)は、Unity6のデフォルト配置だと画面下の方にある領域です。ここでは、デバッグログやエラーが表示されます。

Collapse状態がtrue/Onの場合

「Consoleタブ」の一段下にあるバーには、左から、「Clear∇」「Collapse」「Error Pause」「Editor∇」というボタンが並んでいます。

この内、左から2番目の「Collapse(コラプス)」ボタンは、同じ内容のログを折りたたむ機能です。

※Collapse=折りたたむ

「Collapse」ボタンがOn(有効)になっていると、同じ内容のログが折りたたまれて表示されます。

On(有効)の場合、ボタンの色はやや明るい灰色になっています。

Console各行の右端に数字が書いてあります。これは、同じログが何回出ているかを表しています。

※同じログ=同クラスの同メソッドが実行された際のログ。厳密にはタイムスタンプや変数の値などが異なる。

[ログを折りたたまない方法]

重複する同じログを折りたたまないでほしい場合は、On(有効)状態の「Collapse」ボタンを押してOff(無効)にします。

ボタンはトグル式なので、Onの時に押せばOffになり、Offの時に押せばOnになります。

Collapse状態がfalse/Offの場合

「Collapse」ボタンがOff(無効)の時は、背景色と同じ暗い灰色をしています。同じ内容のログでも折りたたまれず時系列順に表示されます。


[折りたたみをせず全てのログを展開したいケース]

あるバグについて原因を特定したい時に、沢山のデバッグログを入れてどこまで正しく処理され、どこからおかしくなっているのかを確認したいことがあります。

そんな時に折りたたみがOnだと、ゲーム実行開始から何度も行われる処理は上の方に残って、その処理回数だけが更新されます。
コンソールは最新=一番下に合わせてスクロールするため表示範囲から外れます。

これでは、特定の操作をした瞬間にバグが生じても見逃してしまいます。
また、後からログを遡っても、タイムスタンプの並び順が時系列ではないために大変読みにくいです。

そこで、「Collapse」をOff(無効)にして折りたたみを解除します。

最新のログは個別に、かつ、一番下に表示されるため、特定の操作をした瞬間のログが即座に確認できます。


カテゴリ  ゲーム開発
[Unity]EventSystem/EventTriggerの初回クリック不発原因
Unity6.2(Ver.6000.2.7f2)でのスクリプトを想定しているため、以下の記述例は
C# です。

EventSystemは、ImageなどのUI要素とともに用い、マウスポインターやボタン操作を感知する機能です。

現在開発中の縄文時代シミュレーションゲーム(以下、「縄文シミュ」)において、次のような不具合が起こっていました。

・クラフトパネルの分類タブのいずれかをクリックしてクラフト可能アイテムリストを更新すると、その後、最初のアイテムクリックが不発になる。

・2回目以降のクリックは正常に動作する。

・あらかじめアイテムアイコン上ではないリスト内領域をクリックしてからアイテムアイコンをクリックすると、初回でも正常に動作する

タブ切り替えによるリスト更新直後にクリックが無効になる

[他の一般的な不具合ではないことを確認]

・EventSystemがシーンに存在しているか?
・ImageオブジェクトにEvent Triggerをアタッチしているか?
・Imageの Raycas Target にチェックが入っているか?
・重なり合うImageやパネル要素のRaycastTargetにチェックが入っていないか?(入っているとレイキャストの判定を吸われ、ガードされてしまう)
・ButtonのOnClick()などと競合していないか?

「縄文シミュ」では、上記はすべて確認済みで、問題はありませんでした。
[クリック不発原因]

タブをクリックしてリストを更新した後、EventSystemのSelected(選択中状態)が残ったままになっているため、 最初のアイテムクリックが不発になると考えられます。

[解決方法]

リストを更新するメソッドの最後で、明示的にEventSystemのSelected(選択中状態)を解除すると最初のクリックが正常に動作します。

以下は、EventSystem.current.SetSelectedGameObject(null); を呼び出して、Selectedをリセットするスクリプト例です。
Sample.cs(C#)
using UnityEngine;
using UnityEngine.EventSystem; //EventSystemを使うための宣言

public class Sample : MonoBehaviour
{
 public void ListUpdate()
 {
   //ここにリストを更新するメソッドの記述(省略)

  EventSystem.current.SetSelectedGameObject(null);
 }
}
このコードの意味は、「今は何も選んでいないよ」「選択中のオブジェクトはないよ」です。

[選択解除コードはどこに書くか]

「縄文シミュ」特有の事情ですが……

1.カテゴリタブがクリックされると「クラフト総合管理」クラス内の「選択カテゴリ変更」メソッドが実行されます。

2.「選択カテゴリ変更」メソッドから外部クラス「道具リスト管理」「土器リスト管理」「建築リスト管理」いずれかの「リスト更新」メソッドが実行されます。

3.カテゴリ別「リスト更新」メソッドの最後に、選択解除のコードを入れると、タブ切り替え後、最初のクリックが正常に動作するようになりました

なお、「クラフト総合管理」クラスの「選択カテゴリ変更」メソッドから直接、外部クラスの「リスト更新」メソッド実行とEventSystem選択解除を同時に行った場合は、 リスト更新後最初のクリックが不発となり失敗しました。

結論:実際にリスト更新を行うメソッド内の一番最後で、選択解除を行うと良い。

[EventSystemをスクリプトから扱う時の注意点]

選択対象としたい、または、選択を解除したいオブジェクトにImage(Event Triggerアタッチ済み)やButton等の選択可能なUI要素がアタッチされていることを確認します。

そもそも選択可能なUI要素がないとその操作ができないからです。

実際の「縄文シミュ」では、アイテムアイコンPrefabの親はUI要素のない空のオブジェクトで、Imageはその子要素であるため、 親オブジェクト経由で子オブジェクトやそのスクリプトを指定して選択状態を変更しています。

最初は、この親オブジェクトに対して選択解除を行おうとして失敗しました。

[最初から選択したいオブジェクトの指定]

パネルを開いた時やリストが更新された時、自動的に特定のオブジェクトを選択状態にしたい場合は、 EventSystem.current.SetSelectedGameObject(選択したいオブジェクト); として、引数に選択したいオブジェクトを指定します。

Sample.cs(C#)
using UnityEngine;
using UnityEngine.EventSystem; //EventSystemを使うための宣言

public class Sample : MonoBehaviour
{
 public GameObject selectedObject; //選択したいオブジェクト

 public void ListUpdate()
 {
   //リストを更新するメソッドの記述(省略)

  EventSystem.current.SetSelectedGameObject(selectedObject);
 }
}

[動的生成オブジェトの最初の要素を選択する方法]

publicなGameObjectをインスペクターから指定する方式では、リスト更新の度に動的生成されるprefabゲームオブジェクトを選択することができないため、 他の方法を用います。

タブ切り替え時にリストの最初の要素を選択済みにする

前提として、リスト更新メソッドではデータベースから取得した情報をもとにアイテムアイコンのprefabゲームオブジェクトを生成(Instantiate)しています。

foreachを使用して繰り返しオブジェクトを生成するため、最初のオブジェクトを別枠で記録しておく必要があります。

また、これも「縄文シミュ」特有なのですが、生成したオブジェクト側のスクリプトを取得し、 その中のメソッドを実行しないとUIにアイテム詳細が表示されず「最初から選択された」という風には見えないため、 リスト最初のアイテムを選択中にした上で、メソッド実行も行います。

Sample.cs(C#)
using UnityEngine;
using UnityEngine.EventSystem; //EventSystemを使うための宣言

public class Sample : MonoBehaviour
{
 public GameObject itemPrefab; //アイテムアイコンのprefab

 public void ListUpdate()
 {
  GameObject firstObject = null;
   //最初のオブジェクトを記録する変数

  foreach(var item in itemList)
  {
   //リストを更新するメソッドの記述(省略)

   GameObject go = Instantiate(itemPrefab);
   //アイテムアイコンのprefabゲームオブジェクトを生成
   if(firstObject == null)
   {
    firstObject = go; //最初のオブジェクトを記録
     //以降firstObjectはnullではなくなるので記録されない
   }
    //(中略)
  } //ここまでforeach

  if(firstObject != null) //firstObjectがnullでない時
  {
   EventSystem.current.SetSelectedGameObject(firstObject);
    //最初のオブジェクトを選択状態にする

   var firstSend= firstCard.GetComponent<SendScript>();
   firstSend.InfoSend();
    //「クラフト総合管理」にアイテム情報を送信するメソッド

   EventSystem.current.SetSelectedGameObject(firstObject);
    //最初のオブジェクトを選択状態にする。
  }
  else
  {
    EventSystem.current.SetSelectedGameObject(null);
  }
 } //ListUpdate()メソッドここまで
}
※実際の「縄文シミュ」では、アイテムアイコンPrefab(親)はUI要素を持たない空のオブジェクトであるため、 それに対してEventSystemスクリプトを用いても選択状態を指定・解除することができません。UI要素を持つ子オブジェクトに対して同じことを行っています。

【関連記事】
野良箱 | ゲーム制作のWIP(Work in progress)ログ

外部の個人ブログでは「縄文シミュ」開発過程で発生した不具合とその解決方法を逐次公開しています。


カテゴリ  ゲーム開発
子ども・子育て支援金制度に対応
2026年(令和8年)4月から「子ども・子育て支援金制度(以下、「支援金制度」とします)」が始まりました。これは、事業主(会社・法人)だけが負担する「子ども・子育て拠出金」とは異なり、 事業主と従業員が折半(半分ずつ負担)するものです。

注意:この記事を書いている者は社会保険についての専門知識も資格も有しておりません。

今月(5月支払分)の給与から支援金制度への対応を行う会社がほとんどでしょうが、当社(当月締め・当月支払い)の場合は4月分の給与支払い時点で対応が必要でした。

当社使用の給与計算ソフトは5月16日現在すでに支援金制度について自動計算が可能です。
しかし、先月の段階では未対応で、手計算を行いました。

給与計算ソフトを使わずに子ども・子育て支援金を手計算する方法

当社も加入している協会けんぽ(全国健康保険協会)の公式サイトでは、3月の段階でこの制度に関する料金表が公表されていました。

既存の「健康保険料・介護保険料」、「厚生年金保険料」に追加する形で「子ども・子育て支援金[令和8年4月分(5月納付分)から納付]」の欄があります。

この表は、所属している地方の協会けんぽサイトではなく、全国版サイトの中の「都道府県毎の保険料額表」の中から該当する表を探した方が早く見つかります。(以下、「保険料額表」とします)

「保険料額表」を印刷した紙は郵送でも届きました。別途「標準報酬月額×〇〇%」だけ大きく書かれたお知らせも同封されていましたが、実際に給与計算する時はこれではなく前述の「保険料額表」の数値を直接使った方が安全です。

表の見方ですが、等級・標準月額報酬の範囲に給与(控除前)が当てはまる行の「子ども・子育て支援金」欄に入った「全額」と「折半額」を確認します。
この「折半額」は、事業主と従業員がそれぞれ負担する額となり、従業員給与から控除する額はこの「折半額」となります。

ここで、この「折半額」に小数点以下の端数がある場合の扱いですが、当社のように「事業主が、従業員の給与からその負担分を控除する」場合、 従業員負担分の端数が50銭(0.5円)以下の 場合は切り捨て50銭(0.5円)を超える場合は切り上げて1円として扱います。

四捨五入ではなく、50銭(0.5円)捨50銭1厘(0.501円)入というルールのようで、従業員負担が ちょうど50銭(0.5円)の場合は、「以下」に含まれるので切り捨てて端数は0になります。

「保険料額表」の全額から従業員負担を引いた額が事業主負担額となります。
給与明細では、従業員負担分は整数、事業主負担分は小数点まで表示されます。

なお、必ずしも事業主負担の方が大きくなるわけではありません。

例:折半額の端数が0.8円の場合

A従業員負担:切り上げて1円
B従業員が折半額より多く負担した端数:1-0.8=0.2円
C事業主負担:0.8-0.2円(B)=0.6円

A:1円(従業員負担)>C:0.6円(事業主負担)

このように、折半額の端数が切り上げとなった場合は、従業員負担の方が大きくなります。

最終的に事業主が社会保険として納付する額は「保険料額表」の「全額」となります。

余談:社会保険料改定が3月 & 介護保険料が合算の件

通常企業では4月支払の給与分から健康保険・厚生年金保険料が改定となり給与計算ソフトも対応済みになっていますが、当社の場合は3月支払い給与から適用されるため、 こちらも「保険料額表」に従い手計算を行っていました。

「保険料額表」に対するリクエストとして、保険加入者(従業員)の年齢が40歳以上で全員加入となる「介護保険」を、年齢無制限の「健康保険料」と合算しないでいただきたいのです。

「保険料額表」には、介護保険料なし(介護保険第2号被保険者に該当しない場合)  と 介護保険料あり(健康保険介護保険第2号被保険者に該当する場合) の 介護保険・健康保険料に ついてそれぞれ全額表・折半表が掲載され、従業員の年齢によって該当する方の欄を確認するシステムなのですが、 給与明細には健康保険料と介護保険料を分けて記載するため、毎年二つの表の差額をから介護保険料を計算しています。

最初から健康保険料(基本)と介護保険料の欄を分けていただければ、40歳以上の従業員についてのみ介護保険の行も使用するという使い方が出来て助かります。
しかしそうしないということは標準報酬月額に直接保険料率が適用されているので分離が難しいという事情でもあるのでしょうか?

当社の属する青森県の場合は介護保険なしの健康保険料・介護保険料率が9.85%、ありで11.47%です。

折半・従業員負担額の計算が合っているのか否か、たった1円の違いですが翌月の請求まで正解が分からずハラハラして過ごすこととなります。

現在では、先月納付予定とした健康保険料、介護保険料、厚生年金保険料、子ども・子育て支援金、子ども・子育て拠出金の全額が、社会保険の正式な支払通知、および、給与計算ソフトの自動計算と数値が合致していることが分かっておりほっとしております。

上記の内容に誤りのある場合、お手数ですが「お問い合わせ」からご指摘いただけると幸いです。記述を訂正いたします。


カテゴリ  会社運営
夢記録アプリ「夢ピン」配信開始
寝ている間に見た夢を、起きて即記録できる無料アプリ「夢ピン」が配信開始になりました。

配信プラットフォームはApp Store(for iOS)と Google Play(for Android)です。

プライバシーポリシーはこちら

夢ピン

コンセプト
・忘れる前に夢をピン留め

特徴
・タグをタップして夢を記録
・2-3文字の入力でタグを絞り込める
・メモ欄が空のままでもタグからタイトルを自動生成
・リストやカレンダーで過去の夢を振り返る
・統計でよく見る夢が分かる
・ユーザーが新しいタグを追加/リネームできる

プライバシーの安全
・オフラインで完結
・アカウントなし、ログインなし
・データはユーザーの端末内に保存
・広告なし
・AI解析なし
・外部への送信なし

基本情報
・名称:夢ピン(Ja)/Dream Pin(En)/Pin de Sueños(Es)
・価格:無料
・配信プラットフォーム App Store(for iOS)Google Play(for Android)
・対応OS:iOS 13.0以降、Android 7.0(Nougat)以降
・配信開始日:2026年5月4日
・開発・運営:ボクステ株式会社
・対応言語:日本語(Ja)、英語(En)、スペイン語(Es)
・プライバシーポリシー:https://bocste.com/dreampin/policy.html

お問い合わせ
当アプリに何か問題やご質問等ございましたら当社メールフォームよりお問い合わせください。 ハンドルネームやメールアドレスは空欄のままで結構です。(返信が必要な場合はメールアドレスをご記入ください)


カテゴリ  広報