コガネブログ

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

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

【Unity】URP で水面を描画できる「Stylised Water in Unity URP」紹介

はじめに 「Stylised Water in Unity URP」を Unity プロジェクトに導入することで URP で水面を描画できるようになります 使用例 使い方 Shader を「Shader Graph/StylisedWater」に変更したマテリアルを使用します

【Unity】ログ出力を Scene ビューに表示できる「Scene view notification」紹介

はじめに 「Scene view notification」を Unity プロジェクトに導入することで ログ出力を Scene ビューに表示できます 使用例 使い方 using System.Collections; using UnityEngine; public class Example : MonoBehaviour { private IEnumerator Start() {…

【Unity】UIElements でプレハブを EditorWindow から Hierarchy や Project ビューにドラッグ&ドロップするサンプル

はじめに 上記サイト様で公開されているスクリプトを使用すると UIElements でプレハブを EditorWindow から Hierarchy や Project ビューに ドラッグ&ドロップすることができます ソースコード(引用) 使用例

【Unity】条件を満たしていない場合は Inspector から Add Component できないようにするエディタ拡張の例

概要 using UnityEditor; using UnityEngine; [InitializeOnLoad] internal static class Example { static Example() { ObjectFactory.componentWasAdded += OnComponentWasAdded; } private static void OnComponentWasAdded( Component component ) { // …

【Unity】Unity 2020.2.0a18 新機能 - IL2CPP ビルドでスクリプトの変更がなければ高速にビルドされるようになった

概要 Unity 2020.2.0a18 からスクリプトを変更していない状態で IL2CPP ビルドする場合、 高速にビルドされるようになった これでアセットの編集のみを行った場合のイテレーションが高速になります 検証結果 項目 ビルドにかかった時間 初回ビルド 220 秒 2…

【Unity】URP で SpriteRenderer のドット絵のアウトラインシェーダを使用できる「2D Outlines in Shader Graph and Unity URP」紹介

はじめに 「2D Outlines in Shader Graph and Unity URP」を Unity プロジェクトに導入することで URP で SpriteRenderer のドット絵のアウトラインシェーダを使用できるようになります 使用例 使い方 SpriteRenderer に OutlineSprite マテリアルを割り当て…

【Unity】28個のイメージエフェクトの実装を見ることができる「Image Effects Ultra」紹介

はじめに 「Image Effects Ultra」では28個のイメージエフェクトの実装を見ることができます スクリーンショット

【Unity】マリオオデッセイのスナップショットで使えるフィルターのようなシェーダの実装を見ることができる「SMO Shaders」紹介

はじめに 「SMO Shaders」ではマリオオデッセイのスナップショットで使える フィルターのようなシェーダの実装を見ることができます シェーダ 油絵 ゲームボーイ スーパーファミコン ファミコン ブルーム ネオン アウトライン シルエット ブラー セピア グレ…

【Unity】iOS ビルド時に Info.plist の Localization native development region(CFBundleDevelopmentRegion)を日本語(ja_JP)にする方法

概要 #if UNITY_IOS using UnityEditor; using UnityEditor.Callbacks; using UnityEditor.iOS.Xcode; public static class Example { [PostProcessBuild] private static void OnPostProcessBuild ( BuildTarget buildTarget, string pathToBuiltProject ) …

【Unity】Profiler の項目に紐付いているオブジェクトを表示する方法

概要 Profiler の「No Details」を「Show Related Objects」に変更することで Profiler の項目に紐付いているオブジェクトを確認できるようになります

【Unity】MissingMethodException: Default constructor not found for type UnityEngine.ResourceManagement.AsyncOperations.ProviderOperation

概要 MissingMethodException: Default constructor not found for type UnityEngine.ResourceManagement.AsyncOperations.ProviderOperation`1[[UnityEngine.AddressableAssets.Initialization.ResourceManagerRuntimeData, Unity.Addressables, Version=0.…

【Unity】SpriteRenderer で FullRect のスプライトを使用した時と Tight のスプライトを使用した時の処理速度の比較メモ

検証環境 Unity 2019.3.10f1 Android Mono2x Android 8.0.0 表示するスプライト数:100個 検証結果 Mesh Type FPS Full Rect 28 FPS Tight 60 FPS

【Unity】TextMesh Pro の SetText 関数で文字列を設定する場合、文字列が変化しない場合でも UI のリビルドが走る

検証環境 Unity 2019.3.10f1 TextMesh Pro 2.0.1 概要 TMP_Text.cs を見てみると public string text { get { return m_text; } set { if (m_text == value) return; m_text = old_text = value; m_inputSource = TextInputSources.String; m_haveProperties…

【Unity】IL2CPP でインクリメンタルビルドを有効化するかどうかを設定できる「PlayerSettings.SetIncrementalIl2CppBuild」

概要 PlayerSettings.SetIncrementalIl2CppBuild( BuildTargetGroup.iOS, true ); 「PlayerSettings.SetIncrementalIl2CppBuild」を使用することで IL2CPP でインクリメンタルビルドを有効化するかどうかを設定できます

【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…