URP用UnlitShaderテンプレート

前書き

毎回 URP 用の Unlit Shader を探してたのでメモ。


環境

Universal RP 14.0.8


解決方法

Shader "URP/URPUnlitShaderBasic"
{
    Properties
    {
        _MainTex ("Main Texture", 2D) = "white" {}
    }

    SubShader
    {
        Tags
        {
            "RenderType" = "Opaque"
            "RenderPipeline" = "UniversalPipeline"
            "IgnoreProjector" = "True"
        }

        Pass
        {
            HLSLPROGRAM
            #pragma target 2.0
            #pragma vertex vert
            #pragma fragment frag

            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"

            struct Attributes
            {
                float4 positionOS : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct Varyings
            {
                float4 positionHCS : SV_POSITION;
                float2 uv : TEXCOORD0;
            };

            CBUFFER_START(UnityPerMaterial)
            sampler2D _MainTex;
            float4 _MainTex_ST; // (Tiling.x, Tiling.x, Offset.x, Offset.y)
            float4 _MainTex_TexelSize; // (1/w, 1/h, w, h)
            CBUFFER_END

            Varyings vert(Attributes IN)
            {
                Varyings OUT;
                OUT.positionHCS = TransformObjectToHClip(IN.positionOS.xyz);
                return OUT;
            }

            // フラグメントシェーダーの定義。
            half4 frag(Varyings IN) : SV_Target
            {
                float4 col = tex2D(_MainTex, IN.positionHCS);
                return col;
            }
            ENDHLSL
        }
    }
}


Unity2022.2でAssemblyDefinitionでコンパイルが終わらない問題

環境

Unity 2022.2.5f1


症状

依存解決のためにAssembly Definitionを生成して配置。

コンパイルが走るが終わらない。


放置では何も起きなかったのでエディタを再起動するも止まってる



結論:解決せず

Unity 2022.2Script Updaterの不具合の可能性が高そうだった。
forum.unity.com


手元のEditor.logではコンパイル中の出力後

*** Tundra build failed (2.49 seconds), 2 items updated, 1408 evaluated

と出力されていたが、以降のログはなし。


最後に

依存解決のためにAssemblyDefinitionを数珠つなぎ的に解決してたのに詰んでしまった。

GitHubでContributorを消す方法

前書き

個人のプロジェクトで間違って会社のアカウントでコミットして取り消したかったのでメモ。


手順

ローカルリポジトリのコミット情報を上書きしてpush

git commit --amend --author="NAME <XXXX.gmail.com>" -C HEAD
git push -f

GitHubでデフォルトブランチ名を変えて戻す

branchをクリック

ペンアイコンからブランチ名を変更し、再度元のブランチ名に戻す。
今回は main -> main2 -> main

少し経ったらcontributorが消えているかチェック。



最後に

稀によくやるので気を付けたい。


WindowsでminicondaとJupyterを導入する方法

前書き

miniconda と Jupyter を入れるときのメモです。


環境

Windows 10


導入方法

Minicondaを入れる

docs.conda.io

好きなバージョンをインストール。

再起動して環境変数にパスを通す。
ユーザー環境変数ならエクスプローラーを再起動するだけで良い。

コンソールを開く

Anaconda Prompt (miniconda3)を開く

パッケージの一覧を見る

conda listで一覧を見られる。

パッケージを入れる

conda install xxxxxを使って好きなパッケージを入れる。
xxxxxはパッケージ名。
個人的にはnumpymatplotlibは必須。


Jupyterを入れる

Jupyterをインストール

Anaconda Prompt (miniconda3)pip install jupyter notebookでインストール。

ipykernelをインストール

そのままでは python にアタッチされないのでconda install notebook ipykernelでインストール。

Jupyterを開く

Anaconda Prompt (miniconda3)からjupyter notebookと打って起動。


おまけ

minicondaを入れたけど直接 python 起動させる場合、pythonと打ち込むと windows store が開くのでpyで開く。


UnityのEntitiesプロジェクトをビルドする方法

前書き

Entities 0.50.0を使用したプロジェクトのビルド方法のメモです。


注意点

今後のアップデートで方法が変わる可能性があります。


環境

Entities 0.50.0-preview.24
Platforms 0.50.0-preview.4


前準備

プロジェクト設定でプレビューなパッケージを有効にするよう設定します。
Edit > Project Settings > Package Manager のEnable Preview Packagesにチェックを入れます


Entities Platforms Pacage をインストール

Entitiesを使用したプロジェクトは専用ビルドツールが必要でPackageManagerからインストールします。
PackageManagerAdd package from git URL...を選択し、com.unity.platformsと入力するとインストールが始まるので少し待ちます。


ビルド方法

ビルドには専用アセットが必要なため作成します。
Assets > Create > Build Configuration > Empty Build Configuration を選択するとアセットが作成されます。

作成したらビルドしたいシーンを追加しビルドします。
ビルドのボタンはインスペクタウィンドウの右上にあります。


Build Configurationの説明

このアセットはBuild SettingsPlayer Settingsの一部のパラメータをオーバーライドして変更します。
BuildConfigurationAddComponentでオーバーライドしたいパラメータを選択します。

Shared Configurationsに別のビルドアセットをアタッチすることで設定を共有することができます。
変更箇所は Prefab のように青線が表示されます。

プロファイラに接続したい場合はClassicBuildProfileConfigurationDebugもしくはDevelopにします。


おまけ

platformsのパラメータ詳細はドキュメントに記載されていないため全てアタッチした状態の画像を載せておきます。
黄色い三角マークはThis component is not used by the build pipeline.と表示されるので設定しても使われないかもしれません。(未検証)


Riderでdllの依存関係を見る

この記事はUnityのカレンダー | Advent Calendar 2021 - QiitaUnityゲーム開発者ギルド2 Advent Calendar 2021 - Adventarの23日目です。

前書き

UnityではAssembly Definitionをフォルダに追加すると、そのフォルダ別にdllが分割される機能があります。
クラスの循環参照が抑えられコードが綺麗に保てたり、コンパイル範囲が小さくなり変更時のビルドが早くなったりします。
そのdllを依存関係を図で見る機能をご紹介します。


環境

Rider2021.3 (2020.2 over)


方法

Tools > Architecture > Show Project Diagram で表示されます。


開発中の個人ゲームのdllを表示してみた図

(依存関係がかなり怪しいですね・・・)


最後に

クラスのダイアグラムはまだ実装されてません。そちらを見たい方はVisualStudioで見るのが良さそうです。