ボクステ公式ブログ

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

Ad SHOOt(アドシュー)通常バナー

Unity6.2でマウスの左クリックと右クリックを判定する方法
Unity6.2(Ver.6000.2.7f2)でImageをマウスでクリックした際、それが左クリックだったのか、右クリックだったのか判断する方法を紹介します。

Unity6では、case -1:などボタン割当による判別ができません。新しいInput Systemでは、どのボタンをクリックしても全て-2になるという報告例があります。
そのため、新しいInput Systemに対応した判別法を述べます。

前提

  1. シーン内のどこかに「EventSystem」がある。
     存在しない場合は、Hierarchy>右クリック>UI>EventSystemで作成してください。

  2. UI用Canvas>Image要素を持ったオブジェクトがある。
     存在しない場合は、Hierarchy>右クリック>UI>CanvasでUICanvasを作成し、その子要素としてImageを作成してください。
Hierarchy
YourProjectScene
 |_Canvas
 | |_Image
 |_EventSystem

※EventSystemは、HierarchyのScene直下にあるとは限りません。オブジェクトやPlayerInputの中に生成されている場合もあります。その場合でも役割を果たすため、新規に追加しないでください。

スクリプトコード

クリックの左右を判定するために以下のスクリプトを作成します。

<新規スクリプトの作成>
Assets内にScripts等のフォルダがあればその中で右クリック>Create>MonoBehabior Scriptを左クリックし、新しくできたファイルにお好きな名前(例)「ClickDetection」を入力します。

なお、後からファイル名を変更した場合は、ファイル内の「public class 〇〇〇〇〇」部分も同じ名前に変更してください。両者が異なるとエラーとなります。

<コードの中身>
ClickDetection.cs
using UnityEngine;
using UnityEngine.EventSystems;//追加

public class ClickDetection :MonoBehaviour, IPointerClickHandler//追加
{
 public void OnPointerClick(PointerEventData pointerEventData)
 {
  switch(pointerEventData.button)
  {
   case PointerEventData.InputButton.Left:
    //左クリックした時の処理
    Debug.Log("Left Click");
    break;
   case PointerEventData.InputButton.Right:
    //右クリックした時の処理
    Debug.Log("Right Click");
    break;
   case PointerEventData.InputButton.Middle:
    //ホイールクリックした時の処理
    Debug.Log("Middle Click");
     break;
  }
 }
}

上記のスクリプトを、先ほど作成したImage要素を持つオブジェクトへドラッグ&ドロップしてください。

シーンビュー上部の▷をクリックしてゲームを実行(Play)します。
Image要素をクリックすると、UnityのConsoleに「Left Click」や「Right Click」と表示されるはずです。

クリックボタン左右中識別テスト
クリックボタン判定中のコンソール

コードは自由にコピーペースト、改造してお使いください。

【クリックの左右を判定すると何ができるのか?】

例えば、ある一つの敵対オブジェクトに対して左クリックで攻撃、右クリックで防御するなど、複数の機能を割り当てることができます。

当社で開発中のシミュレーションゲームでは、アイテム欄整理時にアイコンを左クリックした時は1個移動、右クリックした時は10個移動するようにしています。

カテゴリ  ゲーム開発
銀行・金融機関にSteam(Valve社)との取引情報を提出する方法
昨今、資金洗浄(マネロン)防止のため銀行・金融機関(以下、「銀行等」とします)から取引情報の確認を受けることが増えました。

当社では、Steamでゲームをダウンロード販売し、売上からレベニューシェアを受け取っています。

Steamを運営するValve社からの売上はUSドル、つまり外貨で送金されてきます。
そのため、銀行等からは特に「外貨取引に関する取引情報」を求められることが多いでしょう。
以下、機密抵触を避けるため、詳細と画像は省いて説明します。

取引について次の情報・添付資料を要する可能性が高いです。

  1. 取引相手の名称
  2. 取引相手の業種
  3. 取引理由
  4. 取引の根拠になる契約書
  5. 取引相手からの送金額≒着金額が確認ができる書類

取引相手の名称は、Steamではなくその運営会社の「Valve Corporation」となります。
業種は、長文を避け、取引に関わりのある事業のみ一文で表現した方が審査に向いています。

取引理由がカテゴリー選択式の場合、「無形商材」>「著作権/ライセンス」に入るそうです。

取引の根拠になる契約書は「STEAM配信契約」です。

契約した覚えがない、どこにやったか分からないという方もおられるでしょうが、この契約書には、SteamWorksでアカウントを作成した際に署名しており、 SteamWorks管理画面>ユーザーと権限>署名済みの契約>「ソフトウェア配信」>右端の「Click to view」から確認できます。

取引相手からの送金額≒着金額が確認できる書類は、SteamWorks管理画面>「財務」>「Reports」>(最新月)>「Payment History」(支払履歴)のスクリーンショットです。

「Net Payment」はその月ごとに受け取れたはずのレベニューシェアです。しかし、支払最低しきい値(Min Payment Threshold)を超えなかった場合は翌月に繰り越されます。
今回分の送金額=繰越合計金額はどこにも記載されていません。
よって、当社の場合はスクリーンショットに画像編集ソフトで次のことを書き入れて提出しました。

  • 今回の支払いに掛かるすべての「Net Payment」額を枠で囲って強調
  • 枠内の合計金額を明記
  • 合計額と着金額の差額は、中継銀行の手数料であること推測される点

これで審査を通りました。他の銀行等ではまた事情が大きく異なるでしょうがご参考までに。

なお、通常の企業間取引ですと、請求書・領収書・支払明細書のいずれかを提出すれば明確な送金額の根拠となります。


【関連記事】ボクステブログ|Steamから売上を受け取る方法


カテゴリ  Steam関連