コガネブログ

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

【Unity】スプライトからメッシュを生成するスクリプト

ソースコード using System; using System.Linq; using UnityEngine; public static class SpriteUtils { public static Mesh SpriteToMesh( Sprite sprite ) { var mesh = new Mesh(); mesh.SetVertices( Array.ConvertAll( sprite.vertices, x => ( Vector…

【おすすめスライド】「なるほど3Dグラフィック描画の仕組み」

スライド https://monolizm.com/sab/pdf/%E7%AC%AC%E4%B8%89%E5%9B%9E_%E3%83%97%E3%83%AC%E3%82%BC%E3%83%B3%E8%B3%87%E6%96%99(%E3%81%AA%E3%82%8B%E3%81%BB%E3%81%A93D%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E6%8F%8F%E7%94%BB%E3%81%A…

【おすすめスライド】「RENDERING 最適化「禍つヴァールハイト」」

スライド

【Unity】変更した GUI.color を簡単に元に戻せるクラス

ソースコード using System; using UnityEngine; public sealed class GUIColorScope : IDisposable { private readonly Color m_oldColor; public GUIColorScope( Color color ) { m_oldColor = GUI.color; GUI.color = color; } public void Dispose() { G…

【Unity】ボタンが押されて縮小した時に、当たり判定のサイズも一緒に縮小する現象を避けるためのコンポーネント「UniUIColliderSizeAdjuster」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEngine; using UnityEngine.EventSystems; public class Example : MonoBehaviour, IPointerDownHandler, IPointerUpHandler { private UIColliderSizeAdjuster m_adjuster; private void Awake() { m_adjuster …

【Unity】エディタ拡張の OnGUI で表示する項目を無効化する「EditorGUI.DisabledScope」

概要 using UnityEditor; using UnityEngine; public sealed class Example : EditorWindow { [MenuItem( "Tools/Open" )] private static void Open() { GetWindow<Example>(); } private void OnGUI() { GUILayout.Button( "ボタン" ); using ( new EditorGUI.Disab</example>…

【Unity】SkipLast、TakeLast を使えるようにするソースコード

ソースコード

【Unity】Project ビューの検索欄に文字列を設定するエディタ拡張

ソースコード using System.Reflection; using UnityEditor; public static class ProjectBrowserInternal { public static void SetSearch( string searchString ) { var assembly = typeof( Editor ).Assembly; var projectBrowserType = assembly.GetType…

【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.2 新機能 - 配列やリストを 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…