コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

2021-01-01から1年間の記事一覧

Unity1Week お題「正」で 2D アクションパズルゲーム「ハコツカミ」を公開しました!

紹介動画 正方形や長方形のブロックをマウスで動かしてお宝を目指す2Dアクションパズルゲーム「ハコツカミ」を1週間ゲームジャムで公開しました!(全30ステージ)https://t.co/aRifuWmk0P#unity1week #unityroom pic.twitter.com/3j0C4MxkNe— baba_s (@baba…

【Unity】アセットの依存関係を調査できる「Dependencies Hunter Unity3D Tool」紹介

はじめに 「Dependencies Hunter Unity3D Tool」を Unity プロジェクトに導入することで アセットの依存関係を調査できるようになります クイックスタート 依存関係を調査したいアセットを右クリックして 「Find References in Project」を押して しばらく待…

【Unity】Unity 起動時に自動で Debug Mode にする方法

概要 Unity の Preferences を開いて「General」の 「Code Optimization On Startup」を「Debug」にすると Unity プロジェクトを開く時に自動で Debug Mode で開始します

【Unity】Addressables でフォルダにアドレスを振った場合とファイルごとにアドレスを振った場合で違いはあるか

検証環境 Windows 10 Unity 2020.3.13f1 Addressables 1.19.11 検証方法 スプライトが格納されているフォルダにアドレスを割り振った場合と フォルダ内のスプライトそれぞれにアドレスを割り振った場合で ビルド時間や成果物に違いはあるのか検証 検証結果 …

【Unity】アセットの依存関係を調査できる「Asset Lens」紹介

はじめに 「Asset Lens」を Unity プロジェクトに導入することで アセットの依存関係を調査できるようになります クイックスタート 「Index Wizard」ウィンドウで「Generate」を押すと 依存関係の調査が始まるのでしばらく待ちます 調査が完了したら依存関係…

【Unity】コンパイル時間や再生までにかかった時間を閲覧できる「Mini Editor Iteration Profiler for Unity」紹介

はじめに 「Mini Editor Iteration Profiler for Unity」を Unity プロジェクトに導入することで コンパイル時間や再生までにかかった時間を閲覧できるようになります 使用例 コンパイルが完了した時に Scene ビューと Game ビューに コンパイルにかかった時…

【Unity】Failed to load 'XXXX.dll', expected x64 architecture, but was x86 architecture.

概要 Failed to load 'XXXX.dll', expected x64 architecture, but was x86 architecture. You must recompile your plugin for x64 architecture. DllNotFoundException: XXXX 自作の C++ Native Plugin を DllImport して使おうとしたら 上記のエラーが発…

【Unity】C++ から配列を受け取るサンプル

概要 Visual Studio の「ファイル > 新規作成 > プロジェクト」を押して C++ の「ダイナミック リンク ライブラリ (DLL)」を選択して「次へ」を押して 適当にプロジェクト名を設定して「作成」を押して #include "pch.h" #define DLLEXPORT extern "C" __dec…

【Unity】Unity エディタを終了しなくてもネイティブプラグインを更新できる「PatchLibrary」紹介

はじめに 「PatchLibrary」を Unity プロジェクトに導入することで Unity エディタを終了しなくてもネイティブプラグインを更新できるようになります 基本的な使い方は上記サイト様で紹介されていますが 自分が試した手順も備忘録としてまとめておきます 設…

【Unity】IPreprocessBuildWithReport で例外が発生した時にビルドを止める方法

概要 using System; using UnityEditor.Build; using UnityEditor.Build.Reporting; public class Example : IPreprocessBuildWithReport { public int callbackOrder => 0; public void OnPreprocessBuild( BuildReport report ) { throw new Exception(); …

【Rider】クラスや構造体のメンバを一覧で確認する方法

概要 Rider メニューの「表示 > ツールウィンドウ > 構造」を押すと クラスや構造体のメンバを一覧で確認できる

【Rider】Explorer ウィンドウにツリーインデントガイドを表示する方法

概要 Rider の設定の「外観 & 振る舞い > 外観」の 「ツリーインデントガイドの表示」をオンにすると Explorer ウィンドウに ツリーインデントガイドを表示できる

【Rider】コードをドラッグで動かせないようにする方法

概要 Rider の設定の「エディター > 一般」の 「ドラッグアンドドロップでコードフラグメントを移動する」をオフにすると コードをドラッグで動かせないようになる

【Unity】transform が操作された時にログ出力できる「Unity.TransformSetterInterceptor」紹介

はじめに 「Unity.TransformSetterInterceptor」を Unity プロジェクトに導入することで transform が操作された時にログ出力できるようになります 使用例 using UnityEngine; public class Example : MonoBehaviour { private void Start() { transform.pos…

【Unity】Malimbe を Unity プロジェクトに追加する方法

概要 Malimbe を Unity プロジェクトに追加したい場合は Project Settings を開いて左のメニューで「Package Manager」を選択して 以下のように設定します 項目 内容 Name npmjs URL https://registry.npmjs.org Scope(s) io.extendreality.malimbe Package …

【Unity】Addressables でアセットバンドルを圧縮するかどうかでビルド時間が変わるか

検証環境 Windows 10 Unity 2020.3.13f1 Addressables 1.19.11 検証方法 10,000 個の Scriptable Object を用意して すべての Scriptable Object にアドレスを割り振って Default Local Group に追加して Default Local Group の Bundle Mode を 「Pack Sepa…

【Unity】Addressables でアセットを変更していないのにビルドに時間がかかる場合

概要 Addressable ではビルドキャッシュが実装されているため アセットバンドルに含めるアセットを変更していない場合、 該当のアセットバンドルのビルドはスキップされてビルド時間を短縮できるが、 アセットを変更していないのにビルドに時間がかかる場合…

【Unity】Addressables のビルドでどこに時間がかかっているのか調べる方法

概要 com.unity.scriptablebuildpipeline@1.19.3/Editor/Shared/BuildTasksRunner.cs 上記のファイルに記載されている BuildTasksRunner.Run メソッドの foreach (IBuildTask task in pipeline) { var sw = Stopwatch.StartNew(); // ★ { try { if (!tracker…

【Unity】Addressables で依存関係が増えるほどビルド時間がどのくらい長くなるか

検証環境 Windows 10 Unity 2020.3.13f1 Addressables 1.19.11 検証方法 1,000 個の Scriptable Object を用意して すべての Scriptable Object にアドレスを割り振って Default Local Group に追加して Default Local Group の Bundle Mode を 「Pack Separ…

【Unity】選択した Package を Assets フォルダに移動するエディタ拡張「Kogane Package To Asset」を GitHub に公開しました

リポジトリ 使用例 使い方 Assets フォルダに移動したい Package を右クリックして「Package to Asset」からコマンドを選択します 項目 内容 Including Dependencies 依存関係も含めて選択された Package を Assets フォルダに移動 Excluding Dependencies …

【Unity】Addressables でアセットバンドルをまとめた時と別々にした時でビルド時間にどのくらい差が出るか

検証環境 Windows 10 Unity 2020.3.13f1 Addressables 1.19.11 検証方法 10,000 個の Text Asset(.txt)を用意して すべての Text Asset にアドレスを割り振って Default Local Group に追加して Default Local Group の Bundle Mode を 「Pack Together(…

【Unity】モザイクシェーダを使用できる「Pixelation Effect in Unity」紹介

はじめに 「Pixelation Effect in Unity」を Unity プロジェクトに導入することで モザイクシェーダを使用できるようになります クイックスタート シーンのカメラに「Camera Effect」をアタッチして 「Material」に「TNTC_Pixelize」マテリアルを設定して 「…

【Unity】無限ループでフリーズした Unity を復帰させる方法

まとめ Windows なら Asset Store の「Emergency Exit」を使うと Ctrl + Shift + Q で無限ループを止められるようになります Visual Studio や JetBrains Rider を使っているなら 以下のいずれかの方法で無限ループを止められます ステートメントの設定で無…

【Unity】Unity エディタで好きなフォントを使用する方法

はじめに 上記のサイト様で紹介されている Unity エディタで好きなフォントを使用する方法を試してみたので 備忘録として自分のブログにも手順を書き残しておきます 手順 【Unity インストール先】\Editor\Data\Resources\fontsettings.txt 上記のファイルを…

【Unity】ホットキーでシーンを開けるようになる「Hotkey Scenes Switcher」紹介

はじめに 「Hotkey Scenes Switcher」を Unity プロジェクトに導入することで ホットキーでシーンを開けるようになります クイックスタート Unity メニューの「Tools > NMJ > SceneManager > Hotkeys > Edit」を選択して ホットキーで開きたいシーンを設定す…

【Unity】エディタ上で AudioClip を再生できる「EditorAudioUtils」紹介

はじめに 「EditorAudioUtils」を Unity プロジェクトに導入することで エディタ上で AudioClip を再生できるようになります クイックスタート Project Settings の左メニューで「EditorAudioUtils」を選択して 再生したい AudioClip を設定して using JD.Ed…

【Unity】Inspector で Markdown のプレビューを確認できる「Unity Markdown Viewer」紹介

はじめに 「Unity Markdown Viewer」を Unity プロジェクトに導入することで Inspector で Markdown のプレビューを確認できるようになります クイックスタート 導入するだけで Markdown のプレビューを確認できるようになります

【Unity】UnityEngine.Object の Null チェックまとめ

結論 SerializeField で Null なフィールド == null は Null だと判定できる ??、?.、??=、is null は UnassignedReferenceException が発生する Destroy した直後の UnityEngine.Object == null は Null だと判定できない ??、?.、??=、is null も Null だ…

【Rider】よく使う機能と使わない機能を確認できる「Productivity Guide(生産性ガイド)」

概要 Rider メニューの「ヘルプ > 生産性ガイド」を押すと よく使う機能と使わない機能を確認できます

【Unity】Particle System のゲームオブジェクトが移動や回転した時にパーティクルを追従させないようにする方法

概要 Particle System のゲームオブジェクトが移動や回転した時に パーティクルを追従させないようにしたい場合は Simulation Space を「World」にします これでパーティクルがゲームオブジェクトの移動や回転に追従しなくなります 参考サイト様