コガネブログ

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

2019-10-01から1ヶ月間の記事一覧

【Unity】TypeSafe でスクリプトから Scan を実行する方法

アセット 概要 using TypeSafe.Editor; using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void StartScan() { TypeSafeApi.QueueRefresh(); } } TypeSafeApi.QueueRefresh を呼び出すと TypeSafe の Scan を実…

【Unity】Tilemap のすべてのタイルを上下左右にずらすボタンを Scene ビューに表示するエディタ拡張

ソースコード using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEngine.Tilemaps; [InitializeOnLoad] internal static class TilemapShifter { private class TileInfo { public readonly Vector3Int m_position; publ…

【Unity】Tilemap のすべてのタイルを上下左右にずらす EditorWindow のエディタ拡張

ソースコード using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEngine.Tilemaps; [InitializeOnLoad] internal static class TilemapShifter { private class TileInfo { public readonly Vector3Int m_position; publ…

【Unity】Tilemap のすべてのタイルをカーソルキーで上下左右にずらすことができるエディタ拡張

ソースコード using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEngine.Tilemaps; [InitializeOnLoad] internal static class TilemapShifter { private class TileInfo { public readonly Vector3Int m_position; publ…

【Unity】Tilemap からすべてのタイルの情報を参照するサンプル

ソースコード var tilemap = GameObject.FindObjectOfType<Tilemap>(); var bound = tilemap.cellBounds; for ( int y = bound.max.y - 1; y >= bound.min.y; --y ) { for ( int x = bound.min.x; x < bound.max.x; ++x ) { var pos = new Vector3Int( x, y, 0 ); // </tilemap>…

【Unity】Tilemap の Inspector に Refresh All Tiles を実行するボタンを追加するエディタ拡張

概要 using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine; using UnityEngine.Tilemaps; [CustomEditor(typeof(Tilemap))] public sealed class TilemapEditor : Editor { public override void OnInspectorGUI() { base.OnInspector…

【Unity】Particle System の再生が終了した時にイベントを実行する方法

概要 Particle System の Stop Action を「Callback」にして using UnityEngine; public class Example : MonoBehaviour { public void OnParticleSystemStopped() { print( "ピカチュウ" ); } } OnParticleSystemStopped 関数を定義したスクリプトを Partic…

【Unity】Particle System の再生が終了した時に削除する方法

概要 Particle System の Stop Action を「Destroy」にすることで Particle System の再生が終了した時に自動で削除されるようになります

【Unity】OnParticleSystemStopped が呼び出されない場合

概要 OnParticleSystemStopped 関数が呼び出されない場合は using UnityEngine; public class Example : MonoBehaviour { private void OnParticleSystemStopped() { print( "ピカチュウ" ); } } OnParticleSystemStopped 関数が private になっている可能性…

【Unity】UnityException: Can not sign the application, Unable to sign the application; please provide passwords!

概要 UnityException: Can not sign the application Unable to sign the application; please provide passwords! Android ビルド時に上記のエラーが発生する場合、 Player Settings で keystore のパスワードを入力してからビルドする必要があります

【Unity】雷のようなシェーダを使用できる「Unity-Shaders」紹介

はじめに 「Unity-Shaders」を Unity プロジェクトに導入することで 雷のようなシェーダを使用できるようになります 使用例 使い方 マテリアルの Shader を「Custom/Lightning」に変更して各テクスチャを設定して、 このマテリアルをスプライトに割り当てる…

【Unity】uGUI のテキストで文字が流れる演出を実装できる「UGUI_Extensions」紹介

はじめに 「UGUI_Extensions」を Unity プロジェクトに導入することで uGUI のテキストで文字が流れる演出を実装できるようになります 使用例 使い方 Text の代わりに「MarqueeText」を使用します

【Unity】Hierarchy にコンポーネントのアイコンを表示できる「Hierarchy Icons」紹介

はじめに 「Hierarchy Icons」を Unity プロジェクトに導入することで Hierarchy にコンポーネントのアイコンを表示できるようになります 使用例 使い方 「Hierarchy Icons」を Unity プロジェクトの 「Editor」フォルダに追加するだけで使用できます Prefer…

【Unity】影の影響を受けるスプライトアニメーションを実装できる「Flipbook Surface Shader for Unity」紹介

はじめに 「Flipbook Surface Shader for Unity」を Unity プロジェクトに導入することで 影の影響を受けるスプライトアニメーションを実装できるようになります 使用例 使い方 マテリアルの Shader を「Custom/SurfaceSpriteSheet」に変更することで使用で…

【Unity】スクリプトから Game ビューの解像度の編集ができる「GameViewSizeHelper」紹介

はじめに 「GameViewSizeHelper」を Unity プロジェクトに導入することで スクリプトから Game ビューの解像度の編集ができるようになります 使い方 var groupType = GameViewSizeGroupType.Standalone; var size = new GameViewSizeHelper.GameViewSize { t…

【Unity】Hierarchy や Project ビューのすべての開いている階層を閉じることができるエディタ拡張「EditorCollapseAll.cs」紹介

ソースコード 使い方 Hierarchy を右クリックして「Collapse All」を押したり Project ビューを右クリックして「Collapse Folders」を押すことで使用できます

【Unity】uGUI で円を表示できる「CircleGraphic.cs」紹介

ソースコード 使用例 使い方 uGUI の空のゲームオブジェクトに「CircleGraphic」をアタッチします

【Unity】uGUI でグラデーションの四角形を表示できる「GradientGraphic.cs」紹介

ソースコード 使用例 使い方 uGUI の空のゲームオブジェクトに「GradientGraphic」をアタッチします

【Unity】Hierarchy を操作する便利なコマンドが用意されたウィンドウを使用できる「Unity-HierarchyTools」紹介

はじめに 「Unity-HierarchyTools」を Unity プロジェクトに導入することで Hierarchy を操作する便利なコマンドが用意されたウィンドウを使用できるようになります 使い方 Unity メニューの「Window>Tools>Hierarchy」を選択して 表示されたウィンドウで便…

【Unity】エディタ拡張で Hierarchy のような GUI を簡単に実装できる「Editor GUI Hierarchy View」紹介

はじめに 「Editor GUI Hierarchy View」を Unity プロジェクトに導入することで エディタ拡張で Hierarchy のような GUI を簡単に実装できるようになります 使用例 using UnityEditor; public sealed class Example : EditorWindow { private EditorGUIHier…

【Unity】Scene ビューのカメラの状態を保存・読み込みできる「Scene Shot Bookmarks」紹介

はじめに 「Scene Shot Bookmarks」を Unity プロジェクトに導入することで Scene ビューのカメラの状態を保存・読み込みできるようになります 使い方 Unity メニューの「Window>Scene Shot Bookmarks」を選択して 表示されたウィンドウで「Bookmark」ボタン…

【Unity】フォルダの選択履歴を管理できる「Unity Project Browser History Buttons」紹介

はじめに 「Unity Project Browser History Buttons」を Unity プロジェクトに導入することで フォルダの選択履歴を管理できるようになります 使い方 Unity メニューの「Window>Utility>Project Browser Extension」を選択して 表示されたウィンドウで矢印ボ…

【Unity】選択したオブジェクトやアセットの履歴を管理できる「Unity Selection History Window」紹介

はじめに 「Unity Selection History Window」を Unity プロジェクトに導入することで 選択したオブジェクト・アセットの履歴を管理できるようになります 使い方 Unity メニューの「Window>Gemserk>Selection History」を選択して 表示されたウィンドウでオ…

【Unity】Hierarchy や Project ビューのオブジェクト・アセットを一括でリネームできる「Universal Rename Tool」紹介

はじめに 「Universal Rename Tool」を Unity プロジェクトに導入することで Hierarchy や Project ビューのオブジェクト・アセットを 一括でリネームできるようになります 使い方 Unity メニューの「Window>Rename Tool」を選択して 表示されたウィンドウで…

【Unity】uGUI におけるチャット画面の実装を見ることができる「WChatPanel」紹介

はじめに 「WChatPanel」では uGUI におけるチャット画面の実装を見ることができます 実装例 閲覧方法 「simple」シーンを開くことで確認できます

【Unity】uGUI における表形式のレイアウトの実装を見ることができる「WDataTable」紹介

はじめに 「WDataTable」では uGUI における表形式のレイアウトの実装を見ることができます 実装例 閲覧方法 「Demo」フォルダ内のシーンを開くことで確認できます

【Unity】軽量な Tween ライブラリ「GoKit」紹介

はじめに 「GoKit」は軽量な Tween ライブラリです 使用例 使い方 こちらの Wiki で詳細な使い方が紹介されています

【Unity】uGUI で 3D オブジェクトを親オブジェクトに収まるサイズで描画できる「Use meshes in Unity UI」紹介

はじめに 「Use meshes in Unity UI」を Unity プロジェクトに導入することで uGUI で 3D オブジェクトを親オブジェクトに収まるサイズで描画できます 使い方 キャンバス内に親オブジェクトを用意して 「Canvas Element 3D」をアタッチします そして、子オブ…

【Unity】EditorUtility.SetDirty が正常に動作しない場合

概要 Undo.RecordObject( tilemap, "Refresh All Tiles" ); tilemap.RefreshAllTiles(); EditorUtility.SetDirty( tilemap ); Undo.RecordObject を併用すると正常に動作する模様 参考サイト様

【Unity】エディタでシーンを開いた時に Tilemap のすべてタイルを自動でリフレッシュするエディタ拡張

概要 using System.Linq; using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine.SceneManagement; using UnityEngine.Tilemaps; [InitializeOnLoad] public static class AllTilesRefresher { static AllTilesRefresher() { EditorScen…