TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

Unityで将棋アプリの開発 その7(待ったの実装)

作成中の将棋アプリに、ボタンを追加して、「待った」ができるようにした。

UIデザイン

頻度の高い機能をゲーム画面から直接押せるボタンとして、それ以外はメニューを開いてから選べるようにする。
「待った」「ヒント」「定跡」を直接押せるボタンとして、「待った」した後は「進む」と「戻る」ができるようにする。

ボタンのデザインは、マテリアルデザインのアイコンを使用した。
https://fonts.google.com/icons

待ったは、日本では手のマークがよく使われると思うが、海外では通じなさそうなので、lishogiを参考に、リバートのアイコンにした。
定跡はノートのアイコンにしたが、少しわかりにくそうなので変えるかもしれない。

ボタンの下に文字を合わせて表示するか悩んだが、スマホだとデザインがごちゃごちゃするので、アイコンのみとした。
分かりやすさとのトレードオフなので、文字を使わない場合はアイコンを分かりやすくするのが重要だと思う。

いったんボタンを配置してみてデザインは、以下のようになった。
f:id:TadaoYamaoka:20220302000049p:plain

ボタン処理の実装

UnityでCanvasにボタンを追加して、背景にイメージを使用するように設定して、Clickアクションに待った処理を実装したメソッドを設定した。

はじめ、ボタンが全く反応しなくて、試行錯誤していたが、盤の座標に使っている文字のWidthとHeightの範囲がボタンと被っていたのが原因だった。
文字が表示されている領域とは関係なくWidthとHeightの範囲が被ると駄目なようだ。

待った処理のメソッドに、2手戻す処理を実装して、待った後は「進む」と「戻る」ができるようにした。

はじめAI思考中に待ったを無効化する処理を実装したが、無効化でボタンの色が変わると視覚的に邪魔なので、AIが思考中にも待ったは先に押せるようにして、思考終了後にすぐに2手戻すようにした。

まとめ

インターフェースにボタンを追加して待ったができるようにした。
次は、ヒントと定跡を実装したい。