2022-12-01から1ヶ月間の記事一覧
Shader.SetGlobalColor などを利用することで、Shader にグローバルなパラメータを渡すことができる しかし、ShaderGraph の場合どうやればいいのか分からなかったので調査してみたところ Exposed が false であればグローバルパラメータが適応されることが…
PerlinNoise を利用した Mesh を生成するスクリプト以下のようなメッシュを作成できます using System; using System.Collections.Generic; using System.Text; using UnityEngine; using Object = UnityEngine.Object; [RequireComponent(typeof(MeshFilter…
Android や iOS のビルド用に OnApplicationPause を利用していた場合 初期状態の UnityEditor ではこちらのイベントが呼び出されないため動作の確認ができない しかし、PlayerSettings / Standalone / Run in Background を無効にすることで、UnityEditor …
youtu.be 上記のYoutube でも言われているように、連続したシードによって乱数を生成すると偏りが出てしまうようなので調査してみました 固定しない乱数 まずは毎回シードを固定化せずに生成しています for (var x = 0; x < size; x++) { for (var y = 0; y …
hacchi-man.hatenablog.com で画像投稿について書いてますが、スニペットは文字列を投げるだけなのでお手軽で、フォームに content を追加して送るだけです using System; using System.Collections; using UnityEngine; using UnityEngine.Networking; publ…
探しても Unity から投稿してるサンプルが見つからなかったので、書いておきます アプリは追加して、Bot Token Scopes に files:write を追加している前提で進めます api.slack.com API とかパラメータは上記にあるので一読しておくとよきです スクショの準…
動作環境 Unity2022.2.0b16 URP 14.0.3 Unity2021で動作していた RendererFeature の PostProcessing 処理をそのまま移植したところ動作しなかったので動作するように修正しました using System; using UnityEngine; using UnityEngine.Rendering; using Uni…
Unity2021.3.15f1. URP 12.1.8 ※URP14の場合はこちら PostProcess 用のスクリプトをたまに忘れるのでこちらにメモしておきます using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Rendering.Universal; [Serializable] public class Sampl…
ShaderGraph の全貌 UnityShaderGraphLibrary/HeightFog.shadergraph at main · yayorozu/UnityShaderGraphLibrary · GitHub 各処理をちょっとだけ分割してまとめる UV と Depth から ワールド座標を求めてY のみを出力 float getWorldPosY() { float3 world…
using System.Collections; using TMPro; using UnityEngine; [RequireComponent(typeof(TextMeshProUGUI))] public class TextShake : MonoBehaviour { [SerializeField] private float _interval = 0.5f; [SerializeField] private float _maxOffset = 10f…
using System.Collections; using TMPro; using UnityEngine; [RequireComponent(typeof(TextMeshProUGUI))] public class TextAppearFade : MonoBehaviour { [SerializeField] private float _interval = 0.5f; private IEnumerator Start() { var componen…
using System.Collections; using TMPro; using UnityEngine; [RequireComponent(typeof(TextMeshProUGUI))] public class TextAppear : MonoBehaviour { [SerializeField] private float _interval = 0.5f; private IEnumerator Start() { var component = …
PackageManager の TextMeshPro にはサンプルコードがついてないなと思い色々探していたところ Packages の TextMeshPro の中に サンプル用の UnityPackage が含まれていました Scene が26個もあり、TextMeshPro の様々な使い方を知ることができそうです
2022.2.0b1 から利用できるようになった FullScreen ShaderGraph を使ってグレースケールのポストエフェクトでも作成してみます まずは Create / Shader Graph / URP / FullScreen ShaderGraph から Shader Graph を作成 そのまま出力するものを作成してみま…
Alpha Clip を有効にして、Alpha Clip Threshold を 0 に変更する そして以下のようにノードを組むことで、ディザが可能になる 上記の ShaderGraph を利用したものがこちら また、DitherSize を大きくすることで抜け具合を調整できる (100)
UnityEditor の再生中に Scene に存在する EventSystem の Inspector の Preview を確認すると 各種パラメータを確認することができる
Deferred Rendering は GBuffer を利用してライトの計算を行うため、スクリプトから Light の Color をマイナスの値にすることで暗い範囲を作り出すことができる public class NegativeLight : MonoBehaviour { [SerializeField] private Light _light; [Ser…
Fog は以下の Define により制御されており、これを ShaderGraph のパラメータに追加して有効無効にすることで、ShaderGraph でも Fog を無効にできます * FOG_LINEAR * FOG_EXP * FOG_EXP2 Shader Graph の設定 Keyword -> Boolean から 以下の3つを定義す…
EditorGUIUtility.labelWidth の値を変更することでラベルの幅を変更することができます // デフォルトは 150 EditorGUILayout.IntField($"Field {EditorGUIUtility.labelWidth}", 0); for (int i = 100; i <= 400; i += 100) { EditorGUIUtility.labelWidth…
using UnityEngine; using UnityEngine.UI; using UnityEngine.Video; [RequireComponent(typeof(RawImage))] [RequireComponent(typeof(VideoPlayer))] public class VideoPlayerMultiClip : MonoBehaviour { [SerializeField] private VideoPlayer _videoP…
/// <summary> /// 楕円の範囲内かどうか (2次元) /// </summary> public static bool IsInEllipse(Vector2 center, Vector2 radius, Vector2 position) { var sum = 0f; for (var i = 0; i < 2; i++) { var a = (position[i] - center[i]); sum += (a * a) / (radius[i] * radi…
public static float GetAngleDiff(Quaternion a, Quaternion b) { var va = a * Vector3.up; var vb = b * Vector3.up; var angleA = Mathf.Atan2(va.x, va.z) * Mathf.Rad2Deg; var angleB = Mathf.Atan2(vb.x, vb.z) * Mathf.Rad2Deg; var diff = Mathf.D…
UnityEditor 上での再生時間短縮のために EnterPlayModeOptions を有効にしていると Unity 再生のたびに static の領域が初期化されなくなるため、その挙動を確認しておく ただしコンパイルが走った際には static の領域が初期化されるので、コンパイルを走…
UnityHub で Android SDK モジュールを加えていた場合 abd を自分で入れる必要なく利用できる adb のパスは以下で /Applications/Unity/Hub/Editor/{UNITY_VERSION}/PlaybackEngines/AndroidPlayer/SDK/platform-tools/adb {UNITY_VERSION} には 利用してい…
ScriptableObject を利用してパラメータを管理すると値を変更した際にリコンパイルが不要なのでお手軽ですが、 NonSerialized な属性をつけていないフィールドは Unity を再起動するまで値を保持し続けるので注意が必要になる 例えば以下のような Scriptable…