コガネブログ

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

2020-06-01から1ヶ月間の記事一覧

【Unity】エディタ拡張からゲームオブジェクトの名前変更モードにするスクリプト

ソースコード using System.Reflection; using UnityEditor; public static class SceneHierarchyInternal { public static void RenameGO() { var assembly = typeof( EditorWindow ).Assembly; var sceneHierarchyWindowType = assembly.GetType( "UnityEd…

【Unity】Unity 2020.2a 新機能 - 配列やリストを Inspector で並べ替えられるようにする「Reorderable」属性

概要 using System.Collections.Generic; using UnityEngine; public class Example : MonoBehaviour { [Reorderable] public string[] m_names; [Reorderable] public Vector3[] m_positions; [Reorderable] public List<Color> m_colors; } 参考サイト様</color>

【Unity】Unity 2020.1 新機能 - RectMask2D でソフトマスクが使用できるようになった

概要

【Unity】Unity 2020.1 新機能 - Console ウィンドウのログが複数選択可能 + コピーできる

概要 ピカチュウ UnityEngine.Debug:Log (object) Example:Awake () (at Assets/Example.cs:9) ピカチュウ UnityEngine.Debug:Log (object) Example:Awake () (at Assets/Example.cs:9) ピカチュウ UnityEngine.Debug:Log (object) Example:Awake () (at Ass…

【Unity】Unity 2020.1 新機能 - Inspector で Vector、Color、UnityEngine.Object、Gradient、AnimationCurve などがコピペできるようになった

概要 using UnityEngine; public class Example : MonoBehaviour { public Vector3 m_vector; public Color m_color; public Example m_example; public Material m_material; public Gradient m_gradient; public AnimationCurve m_curve; }

【Unity】Unity 2020.1 新機能 - ビルド時にプリプロセッサ定義を指定できる「BuildPlayerOptions.extraScriptingDefines」

概要 Unity 2020.1 以前 using UnityEditor; [InitializeOnLoad] public static class Example { static Example() { PlayerSettings.SetScriptingDefineSymbolsForGroup ( BuildTargetGroup.Android, "ENABLE_RELEASE;ENABLE_OFFLINE" ); var options = new…

【Unity】Unity 2020.1 新機能 - .unitypackage でインポートしたアセットの一覧を取得できる「onImportPackageItemsCompleted」

概要 using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { AssetDatabase.onImportPackageItemsCompleted += paths => { foreach ( var path in paths ) { Debug.Log( path ); } }; } }

【Unity】Unity 2020 新機能 - ゲームオブジェクトの Cut & Paste が可能

概要 (Unity 2020.1 で追加されたか 2020.2 で追加されたかは未確認) Ctrl + X、Ctrl + V でも使用可能

【Unity】Unity 2020 新機能 - コンポーネントの Inspector を別窓で表示できる

概要 (Unity 2020.1 で追加されたか 2020.2 で追加されたかは未確認) コンポーネントを右クリックして「Properties...」を選択すると そのコンポーネントの Inspector を別窓で表示できる

【Unity】Unity 2020 新機能 - Image や Text で Raycast Target の範囲を調整できる「Raycast Padding」

概要 (Unity 2020.1 で追加されたか 2020.2 で追加されたかは未確認) Image や Text などの UI オブジェクトに Inspector に 「Raycast Padding」が追加されており、これに負数を設定すると 当たり判定の領域を広げることができる

【Unity】Unity 2020.1 新機能 - ゲームオブジェクトやアセットを複製する時の連番の付き方を設定できる

概要 Game Object Naming:ゲームオブジェクト複製時の連番の付き方 Game Object Digits:ゲームオブジェクト複製時の連番の桁数 Space Before Number in Asset Names:アセット複製時に連番の前に半角スペースを入れるか

【Unity】Unity 2020.1 新機能 - Sprite Atlas バージョン2が追加された(実験段階)

概要 詳細は https://docs.unity3d.com/2020.1/Documentation/Manual/SpriteAtlasExperimental.html

【Unity】Unity 2020.2 新機能 - Scripting Define Symbols が並び替え可能なリストの表示形式に変更された

概要 並び替えが可能になった 「Copy Defines」ボタンを押すとセミコロン区切りの文字列でコピーできる 例:ODIN_INSPECTOR;ENABLE_RELEASE;ENABLE_OFFLINE セミコロン区切りの文字列を貼り付けて Apply することも可能

【ReSharper】配列の for 文を簡単に記述できる Live Template

使い方 itar と記述することで、配列の for 文を簡単に記述できます

【ReSharper】Dictionary.TryGetValue の if 文を簡単に記述できる Source Template

ソースコード using JetBrains.Annotations; using System.Collections.Generic; public static class SourceTemplates { [SourceTemplate] [Macro( Target = "key" )] [Macro( Target = "value" )] public static void tryGetValue<TKey, TValue>( this Dictionary<TKey, TValue> self )</tkey,></tkey,>…

【Slack】ポケモンの色合いをもとに Slack のカラーテーマを作成できる「Pokéslack」紹介

概要 上記のサイト様でポケモンの色合いをもとに Slack のカラーテーマを作成できます

【ReSharper】static コンストラクタを簡単に記述できる ReSharper の Live Template

ソースコード 使用例

【Unity】Vector2 や Vector3 の等値演算子は 0.00001 までの誤差を許容している

概要 公式ドキュメントによると Vector2 や Vector3 の等値演算子は 0.00001 までの誤差を許容しているとのこと Vector2: https://docs.unity3d.com/ScriptReference/Vector2-operator_eq.html Vector3: https://docs.unity3d.com/ScriptReference/Vector3-o…

【Unity】[LicensingClient] Licenses Updated successfully in LicensingClient

概要 [LicensingClient] Licenses Updated successfully in LicensingClient Jenkins からビルドを走らせようとしたら上記のログで処理が止まっていた 手動で Unity プロジェクトを一度起動してから再度 Jenkins のビルドを実行したら 上記のログで止まるこ…

【Unity】TryGetComponent の if 文を簡単に記述できる ReSharper の Live Template

ソースコード 使用例

【Unity】EditorApplication.LockReloadAssemblies のスコープを管理するクラス

ソースコード using System; using UnityEditor; public sealed class LockReloadAssembliesScope : IDisposable { public LockReloadAssembliesScope() { EditorApplication.LockReloadAssemblies(); } public void Dispose() { EditorApplication.UnlockRe…

【Unity】AssetDatabase.StartAssetEditing のスコープを管理するクラス

ソースコード using System; using UnityEditor; public sealed class AssetEditingScope : IDisposable { public AssetEditingScope() { AssetDatabase.StartAssetEditing(); } public void Dispose() { AssetDatabase.StopAssetEditing(); } }

【Unity】Unsaved scenes

概要 Unsaved scenes Addressable Asset System でアセットバンドルをビルドする時に上記のエラーが発生して ビルドできない状況に遭遇した シーンファイルに変更がある状態でビルドを開始すると シーンファイルを保存するかどうか確認するダイアログが表示…

【Unity】SBP ErrorUnsavedChanges

概要 SBP ErrorUnsavedChanges Addressable Asset System でアセットバンドルをビルドする時に上記のエラーが発生して ビルドできない状況に遭遇した シーンファイルに変更がある状態でビルドを開始すると シーンファイルを保存するかどうか確認するダイアロ…

【Unity】Addressable Asset System の DownloadDependenciesAsync で AsyncOperationHandle.PercentComplete が正常な値を返してくれない場合のメモ

概要 自分の環境だと下記のような状況だった バージョン 動作 1.8.3 0.0 ~ 1.0 の値を返してくれる 1.8.4 0.0 ~ 1.0 の値を返してくれる 1.9.2 0.75 ~ 1.0 の値を返してくる 1.10.0 0.75 ~ 1.0 の値を返してくる

【Unity】FancyScrollView の FancyScrollRect を使用した時に「Assertion failed」というエラーが出る場合

概要 public void UpdateContents( IList<ItemData> list ) { base.UpdateContents( list ); } FancyScrollRect を使用して上記のような関数を定義して実行したときに Assertion failed UnityEngine.Debug:Assert(Boolean) FancyScrollView.FancyScrollRect`2:UpdateCo</itemdata>…

【Unity】FancyScrollView で OnSelectionChanged に登録した関数を常に呼び出す方法

概要 protected override void Initialize() { base.Initialize(); m_scroller.OnValueChanged( UpdatePosition ); m_scroller.OnSelectionChanged( UpdateSelection ); } protected override void UpdatePosition( float position ) { base.UpdatePosition(…

【Unity】uGUI のオブジェクトを自作のメニューから呼び出すエディタ拡張

概要 using System.Linq; using UnityEditor; using UnityEditor.Presets; using UnityEngine; using UnityEngine.UI; public static class Example { [MenuItem( "GameObject/MyProject/Image", false, 9 )] private static void CreateImage( MenuCommand …

【Unity】Addressable Asset System でキャッシュの保存場所や保存期間を変更する方法

概要 Project ビューの「+ > Addressables > Initialization > Cache Initialization Settings」を選択すると アセットバンドルのキャッシュの保存場所や保存期間を設定できるファイルが生成されます 項目 内容 Compress Bundles キャッシュに保存するアセッ…

【Unity】Addressable Asset System を使用している ROM で InitializeAsync 時にエラーが発生した時のメモ

概要 NullReferenceException: Object reference not set to an instance of an object UnityEngine.ResourceManagement.AsyncOperations.InitalizationObjectsOperation.Execute () (at Library/PackageCache/com.unity.addressables@1.10.0/Runtime/Initia…