DAIKI

ゲーム作ってます https://www.andgear-games.com/

DAIKI

ゲーム作ってます https://www.andgear-games.com/

最近の記事

【Unity】TimeScaleを管理するクラス

メニュー画面で一時停止したり、ボス撃破でスロー演出を流したり、Time.timeScaleを変更するケースは色々あります。ですが、複数のコードからTime.timeScaleを変更すると不具合になりやすいです。 不具合の例: スロー演出中にメニューを開いて閉じると、スロー演出が解除されてしまう。 そこで、TimeScaleの変更を管理するクラスを作成しました。 コード以下から取得できます。リポジトリごとUPMでインポートもできます。 使い方TimeRequestMan

    • 【Unity】Game ViewでGizmosが重なる問題と対処法

      問題カメラをMain CameraとUI Cameraで分けて実装するとき、Game ViewにGizmosを表示すると、Gizmosが二重に表示されてしまいます。 どうやらGame ViewのOnDrawGizmos()はカメラのcullingMaskに関係なく実行されるようです。 対処法自作のコンポーネントは以下のようにすると良いです。 private void OnDrawGizmos(){ // カメラに描画されないオブジェクトはGizmosも描画しない

      • 【Unity】初めてSteamゲームをリリース!使ったライブラリなどを公開します

        Find it! festival in the Hotel という3D探し物ゲームをリリースしました!ミニゲームでサクッと遊べるのでぜひプレイしてみてください。 この記事では実際に開発に使ったライブラリを紹介します。自作の公開ライブラリもあります。 基本Action Game Core 汎用的なアクションゲーム向けの自作ライブラリです。別のゲーム開発のために頻繁に更新しているので、落ち着いたら記事を書きます。 FPSカメラやキャラクターの移動に使用しました。 UniT

        • 【Unity】Steamクラウドセーブ対応

          Steamクラウドとは、ゲームのセーブデータのファイルをSteamのサーバにアップロード・同期する機能です。フォルダ名にはユーザのIDを含める必要があり、本記事ではそれに対応したコードを紹介します。 フォルダ名について上記の通り、ユーザが複数アカウントを切り替えてプレイした場合は、それぞれのアカウントごとにフォルダを生成する必要があります。 いい感じに保存先のパスを生成するコード以下がそのコードです。Steamworks.NETを利用しています。 以下のようなパスが取得

          【Unity】BurstDebugInformation_DoNotShipを自動で削除するエディタ拡張

          表題のBurstに限らず、ビルド後に指定したファイル・フォルダを自動で削除するエディタ拡張を作りました。 以下のリポジトリをクローンしたり、UPMからインポートできます。 BurstDebugInformation_DoNotShipとは?Burstコンパイル後にビルドパスに生成される、デバッグ用のフォルダです。DoNotShipと書いてある通り、ゲームと一緒に配布しないほうが良いようです。 現時点ではこのフォルダの生成を無効化できません。Burstコンパイル自体のON/O

          【Unity】BurstDebugInformation_DoNotShipを自動で削除するエディタ拡張

          【Unity】フォルダをビルドパスにコピーするエディタ拡張

          ビルド時に、プロジェクト内の任意のフォルダをビルドパスにコピーするエディタ拡張を作りました。 以下のリポジトリからクローンできます。またはUPMからインポートできます。 使いどころライセンス表記の.txtファイルをビルドパスに設置したいと思ったので作りました。 Licensesフォルダはgitの管理下に置きたいが、ビルドパスはgitは無視したい・・・という状況です。 コピーするファイル形式は問わないので、他にも使い道があるかもしれません。 使い方プロジェクトにあるコピー

          【Unity】フォルダをビルドパスにコピーするエディタ拡張

          【Unity】Rigidbody.GetAccumulatedForce()の解説と使用例(キャラのジャンプ処理)

          解説GetAccumulatedForce()は、前回の物理シミュレート以降にAddForce()で加えた力の合計を返します。この力はまだrigidbody.velocityに反映されておらず、次の物理シミュレートで反映されます。 m (質量) × a (加速度) = F (加えた力) なので、次のrigidbody.velocityは以下のようになるでしょう。 次のrigidbody.velocity = 今のrigidbody.velocity + rigidbody

          【Unity】Rigidbody.GetAccumulatedForce()の解説と使用例(キャラのジャンプ処理)

          【Unity】ScrollbarのNavigationをゲームパッドに対応させる

          ゲームパッドを操作したとき、ScrollView(Scrollbar)のデフォルトの挙動は次のようになります。 隣にボタンがない:スクロールする 隣にボタンがある:スクロールせずボタンを選択する 後者を、次のように変更したいです。 隣にボタンがある:スクロールする。端に到達したなら隣のボタンを選択する 利用規約を下までスクロールするとOKボタンが選択される、というようなイメージです。 コード以下からダウンロードまたはコピペしてください。UPMでもインポートできます

          【Unity】ScrollbarのNavigationをゲームパッドに対応させる

          【Unity】キーボード入力時にボタンを自動で選択する

          ボタンの問題点Buttonコンポーネントは、マウスとキーボード(コントローラ)で挙動が異なります。 マウス カーソルをボタンに合わせるとボタンがHighlighted状態になり、クリックするとPressed状態になり、その後はSelected状態になる。 キーボード・コントローラ デフォルトでは何もできない。Selected状態のボタンがある場合、方向キーを押すと隣のボタンがSelected状態になる。 一度マウスでボタンを押さないと方向キーが反応しないのは不便すぎる・

          【Unity】キーボード入力時にボタンを自動で選択する

          【Unity】コントローラ入力の実装で使うべきはInputSystem?SteamInput API?

          結論、InputSystemを使うべきだと思います。現状だとSteamInputAPIを利用するとuGUIの操作ができなくなるためです。 ※開発中のゲームにSteamworksを組み込みながらこの記事を書いています。 InputSystemだけで実装するとどうなるのかInputSystemでActionなどを適切に設定すると、InputSystemがあらゆるコントローラの入力を受け付けてくれます。 これでゲームはxboxやplaystationコントローラを組み込みでサポ

          【Unity】コントローラ入力の実装で使うべきはInputSystem?SteamInput API?

          SteamWorksメモ

          Steam Works の設定で、調査に時間がかかったり忘れそうなことのメモです。随時更新していきます。 基本的なことは公式のドキュメントを確認してください。 Developer Comp パッケージ開発者自身がゲームをテストするためのパッケージ。新しくアプリを作成すると、開発者のライブラリに自動で追加されます。 Developer Comp パッケージに紐づくデポにビルドを設定すると、開発者はライブラリ内のアプリをテストできます。「公開」をする必要はありません。Steam

          SteamWorksメモ

          【Unity】プレハブをScene Viewにドラッグ&ドロップするとHierarchyの位置がおかしい

          プレハブをScene Viewにドラッグ&ドロップしたとき、生成したオブジェクトのHierarchyの位置が変になります。 どうやら、プレハブを作成した際の並び順(.prefabファイルのm_RootOrder)を再現しているようです。 個人的にはCameraやLightなどの基本オブジェクトを一番上に集めておきたいので、毎回Hierarchyを整理しています。 とても面倒くさい! ということで、SceneViewにドラッグ&ドロップした瞬間にそのオブジェクトの並び順を

          【Unity】プレハブをScene Viewにドラッグ&ドロップするとHierarchyの位置がおかしい

          【Unity】OSフォントをFallbackFontに設定する

          2024/2/21 追記 githubリポジトリを作成・PackageManagerに対応しました。 多言語対応をもっと簡単にしたい!全言語のフォントをインポート・設定が面倒。 組み込みOKなフォントを探すのが面倒。 ユーザのPC内にあるSystem font(OS font)を利用したい。 Charactor Setの設定が面倒。 Dinamic Fontに頼りたい。 ローカライズは公式のLocalizationパッケージが便利そう。 やりたいことベースのFo

          【Unity】OSフォントをFallbackFontに設定する

          UnityでEOSを使う備忘録

          2023/11/10追記 Unity向けのプラグインが用意されているので、こちらを使うと良さそうです。 https://github.com/PlayEveryWare/eos_plugin_for_unity UnityでEpicOnlineServicesを導入した時の備忘録です。 P2Pを利用するまでにつまづいた点など。 手順書というよりは、困った誰かの検索に引っかかれば良いなという感じです。 利用ライブラリ・EpicOnlineServices C# v1.13

          UnityでEOSを使う備忘録

          Blender モデル作成 操作

          1ヵ月後、操作方法を忘れるであろう自分へのメモ。 とりあえずモデルを作ってUnityに入れたい人向けでもある。 目標(参考)謎の箱 Blenderをインストールhttps://www.blender.org 執筆時点では2.92.0 Blenderを日本語化Edit > Preferences(ウィンドウが開く),  Interface > Language 日本語を選択。 すぐ下にあるNew Dataのみチェックを外す。 メッシュを操作する視点 視点を回転:マウス中

          Blender モデル作成 操作

          Unity Asset Storeに出品した

          久しぶりにアセットを出品したので、販売開始までの流れをメモしていきます。ちなみに、アセットを作る時間よりもストアページを作る時間のほうが長かったです。 詳細な出品の手順は公式ページをご確認ください。 アセットを作る2画面で作業中に「こっちの画面にも再生ボタンが欲しい!」と思ったのが始まりで、コード自体は2~3時間で完成しました。 商品ページのDraftを作成AssetStoreのパブリッシャー登録が済んでいる前提です。 Asset Storeのパブリッシャー管理画面に行

          Unity Asset Storeに出品した