コガネブログ

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

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

【Unity】Add Component された時に呼び出されるイベント

概要 using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { ObjectFactory.componentWasAdded += com => Debug.Log( com ); } } ObjectFactory.componentWasAdded が呼び出されます

【Unity】Build Settings に登録されているシーンが変更された時に呼び出されるイベント

概要 using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { EditorBuildSettings.sceneListChanged += () => { Debug.Log( "ピカチュウ" ); }; } } EditorBuildSettings.sceneListChanged が呼び出…

【Unity】Transform の Rotation を Inspector における入力と同様に設定する方法

概要 localEulerAngles を使用する方法 using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "CONTEXT/Transform/Example" )] private static void Hoge( MenuCommand command ) { var t = command.context as Transform; t.lo…

【Unity】アセットの作成、名前の変更、移動などのタイミングで呼び出されるイベント

概要 using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { EditorApplication.projectChanged += () => Debug.Log( "ピカチュウ" ); } } EditorApplication.projectChanged が呼び出されます

【Unity】Android のバイブレーションで時間を指定できる「UniAndroidVibration」紹介

はじめに 「UniAndroidVibration」を Unity プロジェクトに導入することで Android のバイブレーションで時間を指定できます 使い方 using UnityEngine; public class Example : MonoBehaviour { private void Update() { if ( Input.GetMouseButtonDown( 0 …

【Unity】各アセンブリのコンパイルが終了した時に呼び出されるイベント

概要 using UnityEditor; using UnityEditor.Compilation; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { CompilationPipeline.assemblyCompilationFinished += ( name, messages ) => { Debug.Log( name ); }; …

【Unity】各アセンブリのコンパイルが開始された時に呼び出されるイベント

概要 using UnityEditor; using UnityEditor.Compilation; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { CompilationPipeline.assemblyCompilationStarted += name => { Debug.Log( name ); }; } } Compilation…

【Unity】UIElements で Game ビューにテキストやボタンを追加するエディタ拡張のサンプル

ソースコード using UnityEditor; using UnityEngine; using UnityEngine.UIElements; [InitializeOnLoad] public static class Example { static Example() { EditorApplication.delayCall += () => { var assembly = typeof( EditorWindow ).Assembly; var…

【Unity】Scene ビューのグリッドの表示の ON / OFF が変更された時に呼び出されるイベント

概要 Scene ビューのグリッドの表示の ON / OFF が変更された時に using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { var sceneViews = Resources.FindObjectsOfTypeAll<SceneView>(); foreach ( var sceneV</sceneview>…

【Unity】Scene ビューの描画モードを変更できないようにする方法

概要 Scene ビューの描画モードを変更できないようにする場合は using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { var sceneViews = Resources.FindObjectsOfTypeAll<SceneView>(); foreach ( var sceneVie</sceneview>…

【Unity】SceneView.sceneViews で Scene ビューの一覧が取得できない場合

概要 InitializeOnLoad のタイミングでは SceneView.sceneViews で Scene ビューの一覧が取得できないようです using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { var sceneViews = Resources.Fi…

【Unity】Scene ビューの描画モードが変更された時に呼び出されるイベント

概要 Scene ビューの描画モードが変更された時に using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { var sceneViews = Resources.FindObjectsOfTypeAll<SceneView>(); foreach ( var sceneView in sceneView</sceneview>…

【Unity】Scene ビューの設定をスクリプトから変更する方法

概要 Scene ビューの設定をスクリプトから変更したい場合は using UnityEditor; public static class Example { [MenuItem( "Scene View/Fov 30" )] private static void Fov30() { var view = SceneView.lastActiveSceneView; view.cameraSettings.fieldOfV…

【Unity】Unity を使用せずに .unitypackage を展開する方法

はじめに 「Unity Package Extractor」を使用することで Unity を使用せずに .unitypackage を展開することができます 使用方法1 https://github.com/Cobertos/unitypackage_extractor/releases 上記のページから「unitypackage_extractor_XX.zip」をダウン…

【Python】dir を使用してすべてのメンバの名前を取得する方法

ソースコード for member in dir(【オブジェクト】): print(member) 関連記事

【Python】inspect を使用してすべてのメソッドの名前を取得する方法

ソースコード import inspect ... for method in inspect.getmembers(【オブジェクト】, inspect.ismethod): print(method[0]) 関連記事

【Visual Studio】Visual Studio 2019 で Python の pip install を実行する方法

概要 ソリューションエクスプローラーで 「Python 環境」内にある「Python X.X」を右クリックして 「Python パッケージの管理」を選択します 「Python 環境」ウィンドウが表示されたら赤枠の入力欄に pip install のコマンドを入力して Enter を押すと pip i…

【ScreenToGif】GIF 動画のサイズを拡大・縮小する方法

はじめに 「ScreenToGif」を使用することで GIF 動画のサイズを拡大・縮小できます オンラインでも GIF 動画のサイズを拡縮できるサービスはたくさんありますが ScreenToGif を使う方法が一番キレイに拡縮できたので、手順を書き残しておきます 方法 ScreenT…

【SourceTree】Bitbucket Login ダイアログが何度も表示される時の対処方法

はじめに SourceTree を起動している時に 上記の Bitbucket Login ダイアログが何度も表示される減少に遭遇した 自分は上記サイト様の方法で直ったので、手順をこのブログにも書き残しておきます 検証環境 Windows 10 SourceTree 2.4.8.0 手順 SourceTree を…

【Unity】Android で QR コードからデータを読み込む方法

はじめに 「ZXing.Net」を Unity プロジェクトに導入することで Android で QR コードからデータを読み込むことができるようになります (iOS でも使用できますが、本記事では Android における使い方を紹介していきます) 目次 はじめに 目次 サンプルプロ…

【Unity】タッチ入力を検出できる「unity-pan-and-zoom」紹介

はじめに 「unity-pan-and-zoom」を Unity プロジェクトに導入することで タッチ入力を検出できるようになります 使い方 シーンのゲームオブジェクトに「PanAndZoom」をアタッチして using UnityEngine; public class Example : MonoBehaviour { private voi…

【Unity】uGUI のオブジェクトを整列できる「Align Tools」紹介

はじめに 「Align Tools」を Unity プロジェクトに導入することで uGUI のオブジェクトを整列できるようになります 使用例 使い方 Unity メニューの「Window > LiteFeel > Align Tools > Align Tools」を選択すると uGUI のオブジェクトを整列できるウィンド…

【Unity】uGUI のボタンが反応しない場合に考えられる原因

はじめに uGUI のボタンが反応しない場合に考えられる原因を書き残しておきます 1. Canvas に GraphicRaycaster が アタッチされていない そのボタンが所属している Canvas に 「GraphicRaycaster」がアタッチされていない可能性があります その場合は、Canv…

【Unity】Inspector でフォルダを設定できる「FolderAttribute」紹介

はじめに 「ColorHex」を Uniy プロジェクトに導入することで Inspector でフォルダを設定できるようになります 使用例 using Folder; using UnityEngine; public class Example : MonoBehaviour { [Folder] public string m_folder; private void Awake() {…

【Unity】Inspector で Type 型をプルダウンメニューから選択できる「TypeInspector」紹介

はじめに 「TypeInspector」を Unity プロジェクトに導入することで Inspector で Type 型をプルダウンメニューから選択できるようになります 使用例 using TypeInspector; using UnityEngine; public class Example : MonoBehaviour { public TypeReference…

【Unity】Internal: Stack allocator ALLOC_TEMP_THREAD has unfreed allocations, size 1552

概要 Internal: Stack allocator ALLOC_TEMP_THREAD has unfreed allocations, size 1552 Unity 2017 のプロジェクトを Unity 2018 にアップデートして そのまま Android ビルドしたところ、上記のエラーが発生してビルドに失敗した Unity を再起動してもう…

【Unity】Inspector で編集できる Dictionary を使用できる「Unity-Serialized Dictionary」紹介

はじめに 「Unity-Serialized Dictionary」を Unity プロジェクトに導入することで Inspector で編集できる Dictionary を使用できるようになります 使用例 使い方 using System; using UnityEngine; [Serializable] public sealed class IntStringTable : U…

【Unity】Hierarchy にゲームオブジェクトの編集を不可能にするボタンが追加される「HiearchyLock」紹介

はじめに 「HiearchyLock」を Unity プロジェクトに導入することで Hierarchy にゲームオブジェクトの編集を不可能にするボタンが追加されるようになります 使用例

【Unity】タイルマップのエディタ拡張に関する記事まとめ

はじめに 当ブログで紹介してきたタイルマップのエディタ拡張に関する記事をまとめました まとめ 自作したエディタ拡張 Inspector に Compress Bounds のボタンを追加 Inspector に Refresh All Tiles を実行するボタンを追加 すべてのタイルを上下左右にず…

【Unity】Unity IAP の OnInitializeFailed で InitializationFailureReason.NoProductsAvailable が返ってきた

はじめに Google Play Console の内部テストで課金検証を行っていた時に Unity IAP の OnInitializeFailed で InitializationFailureReason.NoProductsAvailable が返ってきた Google Play Console にも Unity プロジェクトにも 正しいアイテム ID が登録さ…