LoginSignup
10
13

More than 5 years have passed since last update.

ShaderLab 移動・回転・拡縮コード

Last updated at Posted at 2017-10-24

内容

・移動・回転・拡縮のコードを書きます
 →資料が見つからなかったのでメモ

環境

・Unity5.4
・Windows

※間違っていたら指摘ください

初期準備

・UI-Default.shaderをベースに使用する
→Unityビルドインシェーダー

パターン

移動

//OUT.texcoord = IN.texcoord; // 元々書かれていたコード
OUT.texcoord = IN.texcoord;
OUT.texcoord.x += _Time.y; // 横方向へスクロール
OUT.texcoord.y += _Time.y; // 縦方向へスクロール

[画像を後で貼り付ける]

回転

//OUT.texcoord = IN.texcoord; // 元々書かれていたコード
// 回転を設定
float angle = _Time.y * 1.0;
// 回転行列
float2x2 rotate = float2x2(cos(angle), -sin(angle), sin(angle), cos(angle));
// サイズを設定
float scale = 0.5;
// 回転UVを設定
float2 pivot_uv = float2(0.5, 0.5);
float2 r = (IN.texcoord.xy - pivot_uv) * (1 / scale);
OUT.texcoord = mul(rotate, r) + pivot_uv;

[画像を後で貼り付ける]

拡大・縮小

//OUT.texcoord = IN.texcoord; // 元々書かれていたコード
// サイズを設定
float scale = _Time.y % 1.0;
// 中心UVを設定
float2 pivot_uv = float2(0.5, 0.5); // ←UV方向間違ってる?
float2 r = (IN.texcoord.xy - pivot_uv) * (1 / scale);
OUT.texcoord = r + pivot_uv;

[画像を後で貼り付ける]

お世話になった書籍・サイト

<Unityシェーダープログラミングの教科書 ShaderLab言語解説編>超オススメ!!
https://s-games.booth.pm/items/660001
<サイト>
https://qiita.com/niusounds/items/cb821062acfd353d088d

10
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
13