2021-01-01から1年間の記事一覧
第12回でInputSystemについて、第13回でEventSystemについて、それぞれ調べました。複数シーンでゲームを構成する場合は、もう少し深掘りが必要なことが分かったので、再度いくつか疑問に思っていたことについて調べました。 結論 EventSystem EventSystem同…
戦闘シーンの実装にあたって、イベントシステムはこれまでと同じ作り方でよいか迷ったので、先にゲームを複数シーンで構成する時の、イベントシステムの切り替えについて調べました。 複数シーンでのイベントシステムの切り替え コード 関連記事 EventSystem…
ほとんどはググればトップに出てくるものばかりですが、キーワードを忘れて出会えなくなってしまうこともあるので、以下にまとめます。 デザイン トップページ 記事一覧 カスタマイズ グローバルナビゲーション(メニュー) 見出し 蛍光マーカー(シンタック…
戦闘メニューを作る前に、戦闘メニューの拡張性について考えます。 基本的な構成 手順数 手順の省略 キャラ選択の省略(順序固定) たたかうの省略(武器とアイテムへの回数制限) まほうとアイテムの同一視(まほうとアイテムへの回数制限) かくにんの省略…
#26 の実装にあたって、少しLayoutについて調べた内容を備忘のためにまとめます。今回は、ScrollRect で ILayoutGroup、ILayoutElement がどのように活用されているのかを調べました。 概要 ScrollViewとLayout 一般的なレイアウトの構成 ScrollViewの構成 (…
シーンによるプロジェクトの分割を考えるにあたり、メッセージに求められる条件を考えました。 概要 メッセージの目的 メッセージと送り先 メッセージの型 送り先の型 メッセージと行動の決定 メールボックス ブロードキャスト あいまいな指示 情報拡散、あ…
今回は、シーンによるプロジェクトの分割の3回目で、第31回から作ってきたサービス(シーンの切り替えを仲介する機能)を使って、シーンを切り替えるメッセージを送ります。 前回までの流れ 今回やりたいこと サービスが作られたか(存在するか) 親(マネー…
今回は、前回の続きで、サービス同士を連結させて、任意のシーンにアクセスできる環境を作ります。 前回までの流れ 考え方 コード 動作テスト 次回 前回までの流れ tomo-mana.hatenablog.com プロジェクトをシーンで分割して、作業、デバッグをしやすくする…
今回から、シーンによるプロジェクトの分割に挑戦します。「シーンによるプロジェクトの分割」と呼んでいるのは、ゲーム自体を複数のシーンに分けて作業性を高め、分割・結合を簡単にできるようにすることです。ゲーム全体を一つのマネージャー(ゲーム全体…
今回は加算シーンについて。加算シーンを使って、2段階以上のシーンロードができるのかが分からなかったので、以下について調べました。 シーンはいつからロード済み?:GetSceneByName() シーンはいつロードされたと認識する?:sceneLoadedコールバック …
ObjectPoolを使いたいなと思ったところ、UniRxの中に含まれることが分かったので、インストールしてみました。UniRxは無料でダウンロードできます。UniRxは、他にもイベントのフィルタリングなどにも使用できるようで、将来的にとても役に立ちそうなので、そ…
シーン間通信を設計するにあたって、先にシーン設計とメッセージ(シーンを切り替える理由)を定義します。 シーン遷移:RPGの例 シーン構成(グループ化) メッセージ メッセージの仮想化 仮想化の例 注意点 シーン遷移:RPGの例 一般的なRPGでは、タイトル…
今回は、戦闘シーンについて考える合間に、シーンを使ったサブシステム化を試します(シーンを使ってデバッグ用のドライバモジュールを追加します)。マネージャーシーン無しでもデバッグできるようにすることで、シーン毎の作業分担だけでなくシーンの結合…
#26 の実装にあたって、少しLayoutについて調べた内容を備忘のためにまとめます。#26-2 で、テキストやイメージに合わせて枠がスケールするようにしたい場合に、LayoutGroup を2重にすることで実現できることを書きました。ContentSizeFitter でも同様の挙…
今回は、戦闘の実装に先立って、これまで作ってきたフィールドとは別に、戦闘シーンを作成して、フィールドと戦闘を切り替える管理シーン(マネージャーシーン)を準備します。 方針 シーンの構成 シーン(.Unityファイル)の作成 マネージャーシーンの作成 …
戦闘シーンの追加にあたり、シーンの基本的な操作について調べました。 シーン ファイルとしてのシーン クラス・インスタンスとしてのシーン シーンの識別子 シーンマネージャー シーンのロード シーンがロードされたか シーンをロードする条件 注意点1: Mai…
今回は、ランダムエンカウント(一定歩数歩いたら敵が出る)に挑戦しました。 乱数データ A:1歩ごと乱数振出 アルゴリズム 結果 B:目標歩数+補正値 アルゴリズム 結果 コード 画面表示 余談 次回 UnityEngine.Random については、別の記事にまとめました…
ランダムエンカウントで使用する乱数について調べた内容をまとめます。 インターフェース 乱数の値 再現性 予測可能性 Unityで使用される乱数はXorShiftを使用している?XORとSHIFTだけで計算するため軽量、かつ一周するまでに2128-1のため周期性を予測され…
今回から、戦闘シーンの設計に入ります。今回は、歩いた時に敵に遭遇する(ランダムエンカウント)を実現するために、歩いたかどうかをチェックする機能(歩数カウンタ)を追加します。 仕様 実装 ベースとなるコード 修正コード 次回 仕様 機能そのものは非…
#26 の実装にあたって、少しLayoutについて調べた内容を備忘のためにまとめます。テキストやイメージに合わせて枠がスケールするようにしたい場合に、LayoutGroup を2重にします。どうしてLayoutGroupを2重にすることで枠をスケールできるようになるのかに…
#26 の実装にあたって、少しRectTransformについて調べた内容についてまとめます。<目次> RectTransform の構成 Transform RectTransform Anchor 1点で固定(min == max) 2点で固定(Xmin == Xmax または Ymin == Ymax) 3点で固定(Xmin != Xmax かつ…
#26 の実装にあたって、少しLayoutについて調べた内容を備忘のためにまとめます。 Layout とは Layout を構成するインターフェース ILayoutElement ILayoutController ILayoutGroup/ILayoutSelfController 整列動作(VerticalLayoutGroupの例) LayoutEleme…
備忘のため、ブログの累積PVと到達までの日数をまとめておきます。 累積PV 到達した日 到達までの日数 記事数 53000 2024/4/16 10 197 52000 2024/4/6 19 197 51000 2024/3/18 18 196 50000 2024/2/29 20 196 49000 2024/2/9 18 195 48000 2024/1/22 21 191 …
今回はScrollVIewを使って、テキスト入力をシェルのように表示する方法に挑戦します。今回はテキストの大きさに応じてScrollVIewのContentが動的にサイズ変更されて、いつも最後に追加された行が表示されるようにフォーカスする処理までまとめます。次回、オ…
パソコンを新調してから、これまで使っていたプロジェクトを新しいパソコンに持ってくる方法が分からないでいましたが、よくよく考えたらとても簡単な方法で持ってこられることが分かりました。これで作業を再開できそうです。 作業 Unityプロジェクトを作業…
パソコン入れ替えによるプロジェクト復旧の第二弾。今回はマップを創ります。以前の記事であいまいだった部分を少し明確にしました。 パレットの作成 Tile Palette ウィンドウを開く 新しいパレットの作成 画像の分割(省略) パレットに画像を展開 Tilemap…