2024-11-01から1ヶ月間の記事一覧 - 土鍋で雑多煮

土鍋で雑多煮

UnityでXR・ゲーム開発をしています。学んだことや備忘録、趣味の記録などを書いていきます。

2024-11-01から1ヶ月間の記事一覧

【UI Toolkit】UI ToolkitのUI上にカーソルがあるときにRaycastをブロックする

はじめに どうも、土鍋です。 通常のPhysics.RaycastはUIがあるかを検知してくれません。そのため、UIがあっても貫通して後ろのオブジェクトにRayが当たってしまいます。 従来のuGUIでもそうですが、uGUIはこの記事のようにEventSystemでブロックすることが…

【UI Toolkit】デフォルトにないGridViewを実装する

はじめに どうも、土鍋です。 UI Toolkitを使っていてuGUIにあったグリッドレイアウトができない!という問題があったので、今回は自力で実装します。 uxmlを書いて解決する記事もあったのですが、UI Builderだけで解決できました。 実装方法 UI Builder Gri…

【Unity】MRUK (Meta XR SDK)の最新アプデをやってみる【MRUK v71】

はじめに どうも、土鍋です。 先日、Meta XR SDKのMR機能パッケージであるMRUK(Mixed Reality Utility Kit)にアップデートが来ました。 面白そうな機能がいくつか追加されていたのでやってみました。 ↓リリースノート developers.meta.com Environment Rayca…

【Unity ECS】 Entity情報をUI ToolkitのUIに表示する

どうも、土鍋です。 前回の記事の続きからで、取得したオブジェクトの情報をUIToolkitのUIに表示する方法を解説します。 donabenabe.hatenablog.com 実装 Rayで取得したEntity情報を流す public partial class ECSPlayerInput : SystemBase { public Observa…

【Unity ECS】ECSのEntityを画面クリックで選択できるようにする

はじめに どうも、土鍋です。 Unity ECS (DOTS)では従来のようにカメラからRayを飛ばして、オブジェクトの取得をすることはできません。というのもMonoBehaviourであるカメラからのRaycastとECSで生成されたオブジェクトや移動したオブジェクトは直接参照す…

【Unity6・URP】Unity6&AR FoundationでAR開発を始める

はじめに どうも、土鍋です。 開発でAR Foundationを使うことになったのですが、Unity6で若干UIや設定が変わったのでメモ的に記事を書きました。 はじめに AR Foundationのセットアップ AR Foundationのインポート XR Plugin設定の変更 URPの設定変更 平面に…

【Unity】UI Toolkitでランタイムに値を反映する

はじめに どうも、土鍋です。 UI Toolkitでランタイム処理に向けてイベントの登録や値変更通知の方法を調べました。 コールバックを設定する UI要素のマウス押下のイベントのコールバックを設定するには以下のようにできます。 VisualElement myElement = ne…

【Unity】UI ToolkitでUIを構築してみる

はじめに どうも、土鍋です。 今まで気になってたけど触ってなかったUI Toolkitを触ってみました。 Unity6になって以前より使いやすくなり、機能も今後更に増えるようです。 内容は以下の動画とほぼ同じですが、プラスアルファでやってみたことを書いてます…

UnityECSで都市開発シミュレーションゲームを作る【その3】~経済を回す~

はじめに どうも、土鍋です。 都市開発シミュレーションゲームを作るシリーズ三回目は住民がお金を稼いでそのお金を使うという流れを生み出します。 経済を回す これを知ったので、コードを書き換えました。 donabenabe.hatenablog.com 住民がものを買う 青…

【UnityECS】EntityがComponentを持つか取得できるComponentLookup

どうも、土鍋です。 ECSでEntityは取得できてもコンポーネントにどうやったらアクセスできるんだ? という問題に直面した際にComponentLookupが使えます。 自分はこれを知らなくて苦労しました。 まずはコードをご覧ください。 public partial struct Citize…

土鍋的ハッカソンチーム開発ルーティン【Unity】

はじめに どうも、土鍋です。 私は現在までいくつかのハッカソンに出場し、賞を頂いたりもしました。 つい先日もHackUに参加し、最優秀賞をいただくことができました。 こちら最優秀賞頂きました!!#hacku #openhacku2024 https://t.co/jie7uL1T2o— 土鍋 (@…

UnityECSでのPhysicsで一番近いオブジェクト取得したい

どうも、土鍋です。 UnityECSでの物理シミュレーションではPhysicsというライブラリが使用されます。 youtu.be 以下をインポート - com.unity.physics このPhysicsを使用してプレイヤーに一番近いオブジェクト取得を従来のPhysicsのように行いたいと思ったの…

UniTaskのマルチスレッド処理でGraphics device is null.のエラーが出たときの解決法

どうも、土鍋です。 ハッカソンの作品制作内でマルチスレッドで受信待ちの処理を作ったのですが、その中で「Graphics device is null.」というエラーが出てアプリが落ちるというケースに遭遇したので、その解消法について書きます。 UniTaskのRunOnThreadPoo…

UnityECSで都市開発シミュレーションゲームを作る【その2】~店を作る~

はじめに どうも、土鍋です。 前回に引き続き、都市開発シミュレーションゲームをUnityECSで実装していこうと思います。 前回も書きましたが、現状手探りで記事を書いているので、より良い実装ができ次第、記事も更新していきます。 前回の記事はこちら dona…

UnityECSで都市開発シミュレーションゲームを作る【その1】~ECSの基礎と住民を作る~

はじめに どうも、土鍋です。 昨年正式リリースとなったUnityECSをやってみたいと思ったのですが、色々記事を探しても実際にゲームを作っているものは少なかったので、実際のゲームを作りながら記事を書いていこうと思います。 こちらの内容はIwakenLab Tech…

Unity・Python間でTCP通信をする【Quest・PC間通信】

はじめに どうも、土鍋です。 ハッカソンでPCで用意した機械学習サーバーにMeta Quest3からアクセスし通信を行う必要があったので、その際のことをメモ的に記事にしました。 今回はPython側でサーバーを立て、Unity側がクライアントとしてアクセスするTCP通…

Unity as a Libraryについて雑に調べた

はじめに どうも、土鍋です。 今日は技育展決勝だったのですが、そこでUnity as a Library(UaaL)を使用しているチームがあり、そういえばやってみたかったけど触れてこなかったなと思い、雑に調べました。 ピッチコンテスト後で疲れているので実装して試すの…

ParticleSystemのTextureSheetAnimationでオーラを作る

はじめに どうも、土鍋です キャラクターにオーラを出したかったので、やってみました。 エフェクトアセット Unity公式が出しているクオリティの高い無料エフェクトアセットがあるので、それを改造していきます。 assetstore.unity.com サンプルシーンでエフ…

PlayerPrefsを用いたランキングと演出アニメーション

はじめに どうも、土鍋です。 現在制作中のVRゲームでハイスコアランキングが必要だったので、その際の実装のメモ的に記事にしました。 体験のサイクルを早くするために名前の保存機能は実装していません。 作ったもの ※本番のゲームではもっと気持ちいい演…

スコアのカウントアップ演出で気持ちいいアニメーション検討

はじめに どうも、土鍋です。 現在制作中のVRゲームでスコアUIが画面上にあるのですが、なんとなくスコアが増加していく気持ちよさが少ないな~~と感じたので、カウントアップに合わせてアニメーションさせるようにしました。 さっそく作ったもの 数値変化…

UnityでBLE通信をやってみたいので調査した

開発でUnityでBLE通信をしたかったので、まずBLEについて調べました。 Quest3・マイコン間で通信してみたいので、以下のアセットを見ながら調べました。 assetstore.unity.com BLEのしくみ BLEとは Bluetooth Low Energyの略でBluetoothの一種です。 通信は…

TextureのRead/Writeとmipmapの設定を見てみる

はじめに どうも、土鍋です。 前回に引き続き最近教わった画像ロード関連。TextureはRead/Write(readable)とmipmapの設定によって確保されるメモリヒープに差が生まれるので注意が必要です。 はじめに Memory Profiler Read/Write Texture Importer UnityWeb…

System.IOとUnioの画像ロードの経過時間をProfilerで比較してみた

11/5追記。こちら誤った情報を含んでいたため修正いたしました。 はじめに どうも、土鍋です。 画像ロードは普段ゲームを開発していると何気なく使用しているが、実は結構重い処理だったりする。 例えば、カードゲームアプリでカード一覧を開いた瞬間にカク…

Message PipeとVContainerでMVPパターンをやってみる

はじめに どうも、土鍋です。 最近、Message Pipeを使用したプロジェクトに出会ったのですが、Message Pipeミリしらだったので、今回は勉強がてらUIでよく使用されるMVPパターンをMessage PipeとVContainerを利用してできないかやってみました。 はじめに Me…

Netcode for GameobjectsでVRマルチプレイゲームを作る

はじめに どうも、土鍋です。 今までVRでマルチプレイゲームを作る際、まともなチュートリアルが少なかったため、なかなかハードルが高かった。が、今年、Metaが公式の記事とBuilding Blocksにマルチプレイ用のものを追加した。 Photon FusionによるVRマルチ…

Meta Horizon OS UI SetでMeta推奨デザインシステムに従ったUIを作ろう

はじめに どうも、土鍋です。 10月初旬にMetaが公式でQuestのUIデザインに関するドキュメントを公開しました。 そこで今回はドキュメントをざらっと紹介し、Unityでの使用方法について解説します。 Meta Horizon OS UI Setとは? 公式のUIセット解説から引用…