Shader.Findでエラーが発生してしまう場合

Unity Editor上では問題なく動作しているのに、ビルドしたゲームのShader.Findでエラーとなる場合はAlways Included Shadersを設定するとうまくいく場合があるそうです。

var s = Shader.Find("Custom/Example");
Assert.IsNotNull(s); //error

Always Included Shadersの設定

[Edit] » [Project Settings..]

を実行して、GraphicsタブのBuilt-in shader settingsAlways Included Shadersの項目に使いたいShaderを登録すると良いそうです。

リンク

Unity – Scripting API: Shader.Find
https://docs.unity3d.com/ScriptReference/Shader.Find.html

Tiling/Offset値をスクリプトから設定する方法

MaterialのTexture設定にあるTilingOffsetの値をスクリプトから設定したい場合はSetTextureScaleSetTextureOffsetを使って次のような感じでできるそうです。

Material material;
// Tiling
material.SetTextureScale("_MainTex", new Vector2(1.0f, 2.0f));
// Offset
material.SetTextureOffset("_MainTex", new Vector2(0.5f, 0.5f));

設定値を取得したい場合はGetTextureScaleGetTextureOffsetが使えるみたいです。

リンク

Unity – Scripting API: Material.SetTextureScale
https://docs.unity3d.com/ScriptReference/Material.SetTextureScale.html

Unity – Scripting API: Material.SetTextureOffset
https://docs.unity3d.com/ScriptReference/Material.SetTextureOffset.html

tarの使い方

tar(tape archives)はファイルフォーマットの1つです。Linux/UnixではWindowsでいうところのzipのような感覚で使います。元々は磁気テープに記録する用途で使われていたフォーマットですが、現在ではgzipbzip2と組み合わせて圧縮して使う場合がほとんどです。

基本的な使い方

複数のファイルをtarにまとめる

$ tar cvf example.tar file1.txt file2.jpg file3.doc

ディレクトリーexampletarにまとめる

$ tar cvf example.tar example

tarファイルを展開する

$ tar xvf example.tar

※処理内容を表示する必要がない場合はvを除いてtar cfのように指定することもできます。
※シェルから使う場合、ワイルドカード*を使って*.txtという風にもできます。

圧縮する場合

圧縮なしのtarはファイルを1つにまとめるだけで、サイズは変わりません。(正確には少し増えます。)zipなどのように圧縮したい場合はgzipbzip2を使います。

gzipで圧縮(圧縮率は普通で、処理負荷は低め)

$ tar zcvf example.tar.gz example

.tar.gzを展開

$ tar zxvf example.tar.gz

bzip2で圧縮(圧縮率は高めで、処理負荷も高め)

$ tar jcvf example.tar.bz2 example

.tar.bz2を展開

$ tar jxvf example.tar.bz2

特定のファイルを除外して圧縮する場合

tarに圧縮する際、特定のファイルやディレクトリを除外したい場合は--excludeオプションを使います。

exampleディレクトリ内でabcでないファイル・ディレクトリを.tar.bz2に圧縮

$ tar jcvf example.tar.bz2 --exclude abc example

exampleディレクトリ内で拡張子.logのファイルを除いて.tar.gzに圧縮

$ tar zcvf example.tar.gz --exclude *.log example

アーカイブされているファイルの一覧を表示

実際に展開はしないで、ファイルの一覧のみ表示したい場合はxオプションの代わりにtオプションを使います。

$ tar ztvf example.tar.gz

アーカイブから特定のファイルもしくはディレクトリのみ取り出す

アーカイブから特定のファイルもしくはディレクトリのみ取り出したい場合は次のようなコマンドを実行します。

$ tar zxvf example.tar.gz path/to/file.txt

ワイルドカードを使って取り出すファイルを指定したい場合は--wildcardsオプションを使います。

$ tar zxvf example.tar.gz --wildcards "path/to/dir/*"