【Unity】UIBuilderを使用してEditor拡張Window作成

今風にUIBuilderを使用してEditorWindowを作成してみることにしました。 Unity2021.2.3f1 UIBuilderとは Overview | UI Builder | 1.0.0-preview.18 公式リファレンスを見てもらうのが一番 Editor拡張など、スクリプトで構築していたUIをビジュアルオーサリ…

【Unity】VisualScriptingにスキル攻撃のダメージ計算を任せてみる

VisualScripting(旧 BOLT)を利用してダメージ計算処理をノード設計できるようにし、誰でもさわれるようにする実験をしてみました github.com 結論。 問題なく分離でき「ダメージ計算」「敵AI処理」など単一処理をVisual化するのはとても素晴らしいことだと認…

【Unity】VisualScripting バージョン管理

前回の記事の続きの前に toshizabeth.hatenablog.com VisualScriptingを使って色々遊んでいた後、Gitを確認すると大量のファイルが生成されていた (Assets/Unity.VisaulScripting.Generated フォルダ配下) ファイル数が多いのと、特に UnitOptions.db が30MB…

【Unity】自作のVisualScriptingグラフユニットを作成する

はじめに スケルトンユニット作成 1. 入力ポートと出力ポートを付ける 2. 値の受け取りと送信をする 3. ユニット内にロジックを入れる 関係性の追加(視覚的サポート) Requirement Assignment Succession ドキュメントの追加 はじめに グラフ内のユニットをス…

【Unity】VisualScripting Events unit について 2

はじめに Animation Events ユニット Named Animation Event Event API 終わり はじめに toshizabeth.hatenablog.com これの続き Event Unit についてのまとめ Animation Events アニメーションに付けたイベントトリガーを検知します 試しに実装してみます …

【Unity】VisualScripting Events unit について 1

はじめに Lifecycle OnStart OnUpdate OnFixedUpdate OnLateUpdate OnEnable OnDisable OnDestroy Inputs & Outputs キーボードで特定の入力があった時 UGUIのボタンが押された時 Custom Events ユニットの説明 結果 はじめに 画像をクリックしたときに反応…

【Unity】VisualScriptingとTextMeshProを使用してメッセージの文字送りを実現する

概要 toshizabeth.hatenablog.com こちらの続き 概要 はじめに Timerユニットを取り付ける www.youtube.com こちらの内容から。 メッセージのテキスト送りについての手順について はじめに TextMeshProには設定したテキストの「表示テキスト数」が指定できる…

【Unity】VisualScriptingチュートリアル4

toshizabeth.hatenablog.com 第4回 概要 前準備 ScriptMachineを取り付ける 概要 前回と同じく www.youtube.com こちらの動画を参考としたチュートリアルコードを書いていきます 前準備 前回はキューブオブジェクトを動かし、カプセルオブジェクトに接触し…

【Unity】VisualScriptingチュートリアル3

toshizabeth.hatenablog.com 第三回 概要 実装 1. GameObjectの準備 2. Cubeを動かせるようにする 3. Capsuleに衝突したことを検知するGraphを構築する 非接触状態 → 接触状態 の遷移条件 接触状態 → 非接触状態の遷移条件 接触状態のScriptStateにSetAcrive…

【Unity】VisualScriptingチュートリアル2

概要 以前の記事の続きです toshizabeth.hatenablog.com 「Xが4移動したらCubeが動かなる」という実装をしてみたいと思います 実装 ScriptGraphをダブルクリップして開く AddNodeから GetLocalPosition, If, LessOrEqual を配置 GetLocalPositionから GetX …

【Unity】VisualScripting で "GUI Window tried to begin rendering " エラーが発生する

環境 M1 Mac Unity 2021.2.0b12 VisualScripting v1.7.3 概要 VisualScripting の ScriptGraph上で 右クリック > AddNode を選択した際に GUI Window tried to begin rendering while something else had not finished rendering! Either you have a recursi…

【Unity】VisualScriptingチュートリアル1

手っ取り早く動かしてみることを目標に。 「3秒後にxを2動かして止まる」 という挙動をとってみます 前準備 まず適当なオブジェクトをシーンに作成。 このCubeに StateMachine コンポーネント を取り付けます 次に今から作成するビジュアルスクリプトを保存…

UniRx UniTaskを利用してIObservableで通知が来るまでawaitする

UniRxで作成したIObservableを UniTaskを利用してとある演出シーケンスなどの一連の流れの中で使いたい。 async UniTask 何かしらの演出() { // 演出A // UniRxから通知が来るまで待機したい // 演出B } UniTaskはIObservableをawaitできますが、待機終了す…

【C#】List<Value> からDictionary<Key, List<Value>> を作る方法

あるデータ構造クラス class Data { public HogeType Type; public int Value; } そのクラスのリストがあるとき List<Data> list; このリストから Dictionary<HogeType, List<Data>> dict このような辞書クラスを作りたいとき。 ポイントはValue部分がListになっているところ。 つまり同</hogetype,></data>…

Unity2021.2b にて読み込んだScriptableObjectの参照が "null" になる

画像撮り忘れたため文字だけ Unity2021.2b2 を利用していると困ったエラーに遭遇 ScriptableObejctをAddressableAssetBundleで読み込んだ後、参照を保持する。 するとその参照がいつの間にか "null" となる現象が発覚 "null" は Unity でいうところの「中身…

GitHubActionsでUnity TestRunnerを走らせる 改

以前書いた記事のアップデート版です 現在では以前書いた記事は古くなって正常に動かなくなってる(アップデートしてる)ので追記していきます https://github.com/marketplace/actions/unity-test-runner こちらの GitHubAction を利用させてもらいます。テ…

【Unity】MessagePipeの非同期処理

MessagePipe解読3回目 MessagePipeは非同期処理が実装されているということで、それがどういう使い方ができるか。という部分の記事 async/await で待機 async/await で順次処理、並列処理も可能になっているとのことです! 非同期になっているからと言って…

MessagePipeのDisposable処理について

Qiita で記事化 qiita.com 以下の環境で実行しています MacOS Unity2020.2.0b2 MessagePipe v1.6.1 Zenject MessagePipeはSubcribeでイベントの購読処理を行います。 public class Hoge { public Hoge() { // MyEventの通知を受け取る var subscriber = Mess…

【Unity】MessagePipeのScopeについて2

前回はDIContainerごとに異なるスコープを持つことがわかりました。(Zenject使用時 今回は実際にMessagePipeのBroker, Scope, Lifetimeについて調べながら書いていこうと思います github.com (Readmeが丁寧に書かれているのでここを読むのが一番早いですが.…

MessagePipeのScopeテスト1

前回の続きでMessagePipeを使っていきます 使用環境 Unity Zenject MessagePipe v1.6.1 イベントのスコープ Zenjectを使用してイベントを投げていく上で、イベントのスコープが気になったので簡単にテスト public class ScopeTest { public class Publisher …

MessagePipe を Unity Test で使用してみる

github.com MessagePipeが巷で話題になってきています。 自分のプロジェクトでは自分が作成したイベント発行クラス↓ github.com を使っていましたが、あのCyshapが作成したライブラリ!!! 使わない選択肢がないということで使ってみました。 まずは触りだ…

MessagePipe を Unity Test で使用してみる

github.com 自分で作成した似たようなイベント発行クラス github.com を使っていましたが、あのCyshapが作成したライブラリ。 使わない選択肢がない ということで使ってみました。 まずは触りだけ Unityで使用する上で まずはパッケージをインストールします…

ZenjectとEasySaveの組み合わせについて

EasySaveでGameObjectクラスを保存するとそれにアタッチされているクラスも一緒に保存してくれます。 そして復元時にアタッチされていたクラスも復元されます。 これがすごく便利! しかし、アタッチされているクラスにInjectされる変数があった時を考えます…

Riderのおすすめ初期設定(個人的な

UnityをMacでVisualStudioCodeで開発した上でのストレスポイントとして デバッグがまともに動かない時がある インテリセンス機能が使えない時がある がありました。 (その度に再起動、もしくは .sln, .proj などのVisualStudioファイルの削除をして強制リフ…

【ES3】EasySave3を使ってみる

Unityプロジェクトのセーブデータ管理としてEasySave3を利用してみることにしました。 使用方法については他の記事がわかりやすいので省略。 主に使用してる途中に気づいたことがあれば追記していきます 目次 目次 セーブするクラスはデフォルトコンストラ…

【小ネタ】RiderでBackSpace押しても文字が消えずに左に移動するだけになる現象

会社ではWindows、自宅ではMacbookとそれぞれ環境が違うことによるストレスの一つとしてIDEがあると思います。 VisualStudio(Windows)とVisualStudioCode(MacOS).... 環境が違うことに慣れない.. ということで環境による違いを取っ払うためにRiderを使っ…

Odinを使用してInspector上にScriptableObjectファイルを開くボタンを付ける

プロジェクト毎に異なる設定ファイルや定数、設定をScriptableObjectとして保存することがあると思います 自分がこの時よくあるのが 「設定ファイルどこにあったっけ..」 問題 簡単にできる方法として Windowにショートカット作ってもいいと思いますが、Odin…

VSCode のフォーマットをプロジェクトで統一したい

概要 Unityで個人制作中、VSCodeでコードを書いている時、複数人で同じプロジェクトを開発している場合フォーマットを合わせるのをどうすれば良いのか気になり調べました。 今回はフォーマット設定ファイルをGitで共有する所まで (Mac環境でVSCodeを利用し…

InputSystemでボタンが押され続けていることを検知したい ( IsPressedをつかえ

個人制作でInputSystemを使ってみようと思い試行錯誤 従来のInputから InputSystemへ乗り換えを考えていたとき、 「あるキーが押され続けているか」 という条件をどう取ろうか迷った。 if (Input.GetKey(KeyCode.LeftArrow)) { moveDir = Vector2Int.left; }…

【Unity】Mac環境でVisualStudioデバッグ実行してもすぐに終了する問題

Unityから Assets > Open C# Project して開いたVisualStudioのデバッグ実行をしても一瞬で落ちる。 特にエラーも出ない。 スン... と落ちるだけ しばらく試行錯誤して見た所、とあるタイミングで以下のエラーが出た error : Your project does not reference …