はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

Unity

【Unity】PlayModeWindow(GameView or SimulatorView)に対してスクリプトから情報の取得・設定を行う方法

はじめに 今回はPlayModeWindowについて紹介したいと思います。ちなみにPlayModeWindowというのはGameViewとSimulatorViewの総称のことですね。 SimulatorView or GameViewゲームビュー - Unity マニュアル Simulator ビュー - Unity マニュアル Class conta…

【Rider】RiderにAI Assistantを導入する方法(利用できる人数が決まってて早い者勝ちなので注意)

はじめに つい先日Rider 2023.2 EAP 6がリリースされ、なんとAI Assistantが導入されました。 The Rider 2023.2 EAP 6 build has just been released and this one is a game-changer. It is the first build to include features leveraging the enormous p…

【Rider拡張機能】XML Doc Inspectionsを導入して XML Doc commentの警告を出す範囲を指定する(Unityでも有用)

はじめに 今回はRiderの拡張機能であるXML Doc Inspectionsについて紹介したいと思います。 A simple ReSharper extension which enables to show warnings for missing XML Doc comments for types and type members. In contrast to the C# compiler's CS1…

【Rider】RiderにHeap Allocations Viewerを導入してヒープアロケーションを可視化する(Unityでもオススメ)

はじめに 今回はHeap Allocations Viewerについて取り上げたいと思います。 This plugin statically analyzes C# code to find all local object allocations happening.It can be used to reduce number of heap allocations in hot paths of your C# progr…

【Unity】「Selection Groups」を活用して複数のGameObjectをグループ化する(GoQLによる検索も便利)

はじめに 今回はSelection Groupsについて取り上げたいと思います。Selection GroupはUnity公式パッケージで、複数のGameObjectをグループ化・操作することができます。 Selection Group は、Unity のワークフローをより快適にします。 複数の GameObject を…

【Unity】ライトテーマを利用しているかダークテーマを利用しているかをスクリプトで調べる・設定する方法(Preferencesのkeyの探し方)

はじめに 今回はUnity Editorのテーマをスクリプトから取得しようという記事になります。 はじめに GUI上での変更方法 スクリプトでの取得 Preferencesのkeyの探し方 GUI上での変更方法 書く必要はないかもしれませんが、GUI上での変更方法についても記載し…

【Unity】TypeScriptを使ったコーディングや(P)Reactを使ったUI構築ができるOneJSの紹介と導入

はじめに Twitterを眺めていたところ面白そうなライブラリを見つけました。https://t.co/WDCxtukXWWUnityなのにC#じゃなくてTypeScriptを使って開発できるらしい。UIもReactで作れるぽい。すげー— su10@ハイパーカジュアルゲーム開発 (@su10_dev) May 10, 20…

【Unity】Search ExtensionsのDependency Viewerを用いてGameObjectまたはアセットの依存関係を調べる(グラフ表示する)

はじめに Dependency Viewerは選択したGameObjectやアセットの依存関係を調べることができる機能です。 The Dependency Viewer is a new prototype tool that is built on the Search ecosystem. The Dependency Viewer allows a user to always know the de…

【Unity】Unityでinitアクセサーを利用できるようにする(Predefined type 'System.Runtime.CompilerServices.IsExternalInit' is not defined or imported)

はじめに C#9.0よりinitアクセサーが登場しました。 public int Year { get; init; } しかし現状のUnity(Unity2023.1で実験)で利用しようとすると以下のようなエラーが出てきてしまうようです。 error CS0518: Predefined type 'System.Runtime.CompilerServ…

【Unity】ビルトインスクリプトシンボル一覧の調べ方(Unity2023.1.0b7)

はじめに Unityには複数のビルトインスクリプトシンボルが定義されています。docs.unity3d.com公式ドキュメントにもある程度まとめられているのですが、書かれていないようなものも存在するため調べ方を書き残しておきたいと思います。また実験対象としてUni…

【Unity】キャッシュされたビルドの成果物を削除してからビルドする方法(BuildOptions.CleanBuildCache)

はじめに Unity2021.3あたり?からインクリメントビルドが導入されました。 開発中のイテレーションを高速化するために、Unity はインクリメンタルな (増分) ビルドパイプラインを使用しており、アプリケーションの一部が前回のビルド以降に変更された場合の…

【Unity】ビルドパイプラインのプロファイリングを標準機能のみで行う(buildreport.json & chrome://tracing)

はじめに 今回はビルドパイプラインのプロファイリングについて取り上げたいと思います。Unityでコンパイルプロセスの可視化ツールとして、Compilation Visualizerが有名です。 www.hanachiru-blog.comただ外部ツールなので、導入に少し手間が必要ではありま…

【Unity】SimpleGraphQL-For-UnityというGraphQLクライアントライブラリを利用してみる

はじめに 今回はSimpleGraphQL-For-UnityというUnity用のGraphQLクライアントライブラリを紹介しようと思います。 This package attempts to provide a simple API that is able to interact with a GraphQL server. Nothing more, nothing less. No complic…

JetBrains Rider2022.3.2で「ReSharper Host Connecting to ReSharper Host...」から進まないときの対処法

はじめに JetBrains Rider2022.3.2を利用していたら、突然以下のようなエラーが表示されインテリセンスが効かなくなってしまいました。 Connecting to Reshaper Host ReSharper Host Connecting to ReSharper Host... 一応解決できたので備忘録の意味合いも…

【Unity】UniTask-Supplementを用いてUniTaskのCancellationTokenを渡す記述を簡素化する

はじめに 今回はUniTask-SupplementというUniTaskのCancellationTokenを渡す記述をより簡単にしてくれるライブラリについて紹介をしたいと思います。github.com github.com はじめに 導入方法 使い方 基本 新しく実装されたメソッド WhenAnyでCancellationTo…

【Unity】Unity 2023.1より登場したAwaitableの使い方まとめ(Unity公式版UniTask??)

はじめに ついにUnity2023.1よりUnity公式版UniTaskが出ました。(結構語弊がありそうだか...)github.comただ現段階ではUniTaskと同等・もしくはそれ以上な機能を持っているわけではなく、軽く触った限りはまだまだAPIが足りず発展途上かなといった感じです。…

【Unity】有名なGIFサポートライブラリについて比較してみる(UniGif, mgGif, Unity-GifDecoder)

はじめに 今回は有名なGIFサポートライブラリを比較してみたいと思います。対象ライブラリは以下の3つ。 UniGif mgGif Unity-GifDecoder GitHub - WestHillApps/UniGif: GIF image decoder for Unity. GitHub - gwaredd/mgGif: A unity library to parse GIF…

【Unity】GIFをサポートするようにできる「UniGif」というライブラリの使い方

はじめに 今回はGIFをサポートできるようにするUniGifというライブラリについて取り上げたいと思います。 GIF image decoder for Unity.Decode a GIF file at run time to get the texture list. Supports GIF87a or GIF89a format. (Animation, transparenc…

【Unity】SourceGeneratorを実装してUnityで動作させるまでやってみた(Unity2021.2以上で利用可)

はじめに Unity2021.2以上からSourceGeneratorを利用することができるようになりました。 ソース ジェネレーターを使用すると、C# の開発者がコンパイル時にユーザー コードを検査できます。 ソース ジェネレーターは、ユーザーのコンパイルに追加される新し…

【Unity】GIFをサポートするようにできる「Unity-GifDecoder」の使い方(Streamを扱えるので便利)

はじめに 今回はUnity-GifDecoderというUnityでGIFサポートできるライブラリの紹介をしたいと思います。 Custom gif decoder written from scratch, designed for Unity engineThere is no gif decoding library for .net, since GifBitmapDecoder is alread…

【Unity】 「ValueTaskSupplement」でValueTaskに対してWhenAny, WhenAllを適応する

はじめに 今回はValueTaskに対してWhenAny, WhenAll, Lazyを適応できるようにするValueTaskSupplementについて紹介したいと思います。github.comまたLazy(AsyncLazy)に関しては、私自身ちゃんと理解できていなくこの記事には書かないので注意してください。 …

【C#, Unity】Regex.Matchはインスタンスメソッドを使うとGC.Allocと処理速度の面で有利

はじめに Regex.Matchには静的メソッドとインスタンスメソッドが存在します。 // 静的メソッド Match match = Regex.Match("An extraordinary day dawns with each new day.", @"\ba\w*\b"); // インスタンスメソッド Match match2 = new Regex(@"\ba\w*\b")…

【Unity】GIFをサポートするようにできる「mgGif」というライブラリの使い方(Imageへの適応例つき)

はじめに 今回はmgGifというライブラリを紹介したいと思います。 A unity library to parse a GIF file and extracts the images, just for fun // DeepL翻訳 GIF ファイルを解析し、画像を抽出するための Unity ライブラリです。 github.comまた今回実験と…

【Unity】コルーチンでタスクをyiled returnしようとすると1フレームだけ待つという罠(UniTask.ToCorouine推奨)

はじめに コルチーンの中でTaskを待つために以下のようなコードがあったとします。 private IEnumerator SampleCoroutine() { Debug.Log("Start Task"); // 1フレームだけ待つことに注意 yield return SampleAsync(); Debug.Log("EndTask"); } private asyn…

【Unity】PackageManagerの表示が崩れてしまう場合の対処法(Mac, Unity2020.3.5f1)

はじめに MacOSのUnity2020.3.5f1で、PackageManagerを開いたら以下のような表示になっていました。 Package Manager はじめに 解決方法 参考 解決方法 Project SettingsからPlayer/OtherSettings/Graphics APIs for MacにOpenGL Coreを追加して上に設定しま…

【Unity】メールを送ることができるようにする「UniMail」の紹介と使い方(Win, OSX, iOS)

はじめに 今回はメールを送ることができるようになるUniMailについて紹介したいと思います。github.comまた画像付きでメールを送る機能も実装されているのですが、画像付きはiOSのみ対応なことに注意です。 はじめに 対応プラットフォーム Send email with i…

【Unity】Easy Save3にAssembly Definitionを定義する

はじめに Unityのセーブアセットとして、Easy Saveがとても有名です。すごく使い勝手が良く暗号化もしてくれる便利アセットですが、唯一の不満点があります。それはAssembly Definitionが定義されていないということです。大した労力もかからないとは思いま…

【Unity】UnityのメッシュをフルカラーでMagicaVoxelにエクスポートできる「MagicaVoxel Tools」の紹介と使い方【アセット紹介(2)】

はじめに 今回はUnityのメッシュをフルカラーでMagicaVoxelにエクスポートできるMagicaVoxel Toolsというアセットについて紹介したいと思います。 ゲームオブジェクトから.voxを生成するサンプルシーン1 はじめに 概要 環境 対応プラットフォーム MagicaVoxe…

【Unity】シンプルだが汎用性の高いUIアセット「Simple UI」の紹介と使い方【アセット紹介(1)】

はじめに 新しい試みとして、私が買ってよかったなと感じたアセットを紹介していくといったアセット紹介シリーズというのをやっていこうと思ってます。最初に紹介するのはSimple UIというUI関連のアセットです。 環境 Simple UI v0.5 対応プラットフォーム U…

【Unity】DoTweenでUniTaskを対応させてawaitできるようにする

はじめに 今回はDoTweenとUniTaskを組み合わせる方法について紹介したいと思います。 // DoMoveXをCancellationToken付きでawaitする await gameObject.transform.DOMoveX(10f, 1) .WithCancellation(token); はじめに やり方 参考 やり方 UniTask.DOTweenと…