はじめに
よく忘れるので備忘録です
環境
Unity 5.6.3p1
Unity 2017.4.15f1
オブジェクトのスケール比
スケールx
float sX = 1/sqrt(pow(unity_WorldToObject[0].x, 2) + pow(unity_WorldToObject[0].y, 2) + pow(unity_WorldToObject[0].z, 2))
スケールy
float sY = 1/sqrt(pow(unity_WorldToObject[1].x, 2) + pow(unity_WorldToObject[1].y, 2) + pow(unity_WorldToObject[1].z, 2));
スケールz
float sZ = 1/sqrt(pow(unity_WorldToObject[2].x, 2) + pow(unity_WorldToObject[2].y, 2) + pow(unity_WorldToObject[2].z, 2));
xとyの比
X:Y = sX/sY : 1
使用用途によってはWorldToObjectの部分をObjectToWorldにしてもいいかもしれないです
MainTexの縦横比
縦の解像度
float h = _MainTex_TexelSize.w;
横の解像度
float w = _MainTex_TexelSize.z;
縦横比
縦:横 = h/w : 1
_MainTexと宣言されたプロパティが存在し,
コード内でfloat4 _MainTex_TexelSize;
と書いておく必要があります
プロパティ名が_MainTex以外のテクスチャ(_Hoge)に対しても_Hoge_TexelSizeと書くことで使えます