sixteen 2022/05/21 19:09

ソリティアのプログラムをUnity上で動作確認しています

ご覧くださいましてありがとうございます。
今回は、ようやくコンソールの黒い画面の作業の終わりが見え始めてきましたので、
Unity上で動作確認を行っておりました。
とはいえ、まだUnity上のログ出力で最低限の動作確認ですので、
まだまだ地味な画面が続きそうです。
現時点でどのようになっているか、お話をさせていただければと思います。

GWセールでご購入いただきました皆様ありがとうございます!

GWセールで拙作「潮吹きゴルフソリティア」をご購入いただきました方々、
本当にありがとうございます。
手に取っていただけて大変励みになっております。

現在は、ゴルフの派生ルールの「トライピークス」というルールのソリティアを、
目下開発中ですので、ご期待頂ければ幸いです。
とても分かりにくいですが、
現在、コンソール版で、ルールを実装して動作確認を完了したところです。

前作より演出面を強化して、お届けしたいと思っておりますので、
どうぞよろしくお願いいたします。

Unity の Debug.Log で、カードの状態を表示

Unity の機能の一つである、
Debug.Log メソッドを使用して、
現在のカードの状態がどうなっているか、
表示できるようにしておりました。

これは、前々回(https://ci-en.dlsite.com/creator/9335/article/629238)
で実装しておりました、
黒い画面の表示を、Unityのデバッグ表示画面に出してみた、
という状態です。

最低限のキー入力で、
Sを押したらシャッフル、Rを押したらリセット、
といったことがUnity上でもできているかの確認ができるようになっています。

ただちょっと気になっているのが、
コンソールの黒い画面では文字が綺麗に並んでいるのに対して、
Unityのデバッグ画面では、文字の大きさが一致していないためなのか、
結構ガタガタになってしまっていて、
ちょっと見辛いなぁ…と思っています。

ただ動作自体は確認できておりますので、
これが見辛くて開発に支障が出るようでしたら、
ファイルに出力して、
テキストエディタでリアルタイムで確認できるようにしようかと思っています。

今月は、黒い画面上のコンソール環境とUnityという、
2つの異なる環境で、
プログラムの変更をどうやって最低限に抑えるかを工夫しておりました。
具体的にどういうことをしていたか、
少しお話をさせていただきます。

異なる動作環境での分岐処理を減らしたい

C#のコンソール画面に何かを表示するときは、

Console.WriteLine("ABC");

のように、Console.WriteLine() というメソッドを使うのが一般的です。

一方、Unityのコンソール画面に何かを表示するときは、

Debug.Log("ABC");

のように、Debug.Log() というメソッドを使うことが多いです。

このとき、手っ取り早く実装しようとすると、

if (コンソールだったら)
{
    Console.WriteLine("ABC");
}
else if (Unityだったら)
{
    Debug.Log("ABC");
}

このように、動作環境に合わせた条件文を書くことになります。

もちろんこれでも動くので良いと言えば良いのですが、
他にも環境によって動作を変える場合、
そのたびにif文やswitch文による分岐が増えてしまうことになります。

また、Unityの環境下では使わないConsole.WriteLine メソッドが、
Unityの環境に残ってしまうという、
あまり望ましくない状態になってしまいます。

こういう場合にわたしが良く用いる対処方法について、
フォローしていただいている方限定で、
少し掘り下げてお話させていただこうと思います。
ご興味がありましたら、お付き合いいただければ幸いです。

フォロワー以上限定無料

少し技術的な話題をご提供いたします。 料金はかかりませんので、ご興味があればぜひご参加ください。

無料

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索