回答編集履歴
1
ラインマテリアルの例を追記
answer
CHANGED
@@ -49,4 +49,66 @@
|
|
49
49
|
|
50
50
|
下図のようにエラーメッセージが表示され、`GetPositions`の返り値は1となっています。
|
51
51
|
|
52
|
-

|
52
|
+

|
53
|
+
|
54
|
+
**ラインマテリアルの例**
|
55
|
+
```ShaderLab
|
56
|
+
Shader "Unlit/UnlitLine"
|
57
|
+
{
|
58
|
+
Properties
|
59
|
+
{
|
60
|
+
_MainTex ("Texture", 2D) = "white" {}
|
61
|
+
}
|
62
|
+
SubShader
|
63
|
+
{
|
64
|
+
Tags { "RenderType"="Opaque" }
|
65
|
+
|
66
|
+
Pass
|
67
|
+
{
|
68
|
+
CGPROGRAM
|
69
|
+
#pragma vertex vert
|
70
|
+
#pragma fragment frag
|
71
|
+
#pragma multi_compile_fog
|
72
|
+
|
73
|
+
#include "UnityCG.cginc"
|
74
|
+
|
75
|
+
struct appdata
|
76
|
+
{
|
77
|
+
float4 vertex : POSITION;
|
78
|
+
fixed4 color : COLOR; // 入力データとして頂点色を追加する
|
79
|
+
float2 uv : TEXCOORD0;
|
80
|
+
};
|
81
|
+
|
82
|
+
struct v2f
|
83
|
+
{
|
84
|
+
float2 uv : TEXCOORD0;
|
85
|
+
fixed4 color : COLOR; // v2fにも色データを追加する
|
86
|
+
UNITY_FOG_COORDS(1)
|
87
|
+
float4 vertex : SV_POSITION;
|
88
|
+
};
|
89
|
+
|
90
|
+
sampler2D _MainTex;
|
91
|
+
float4 _MainTex_ST;
|
92
|
+
|
93
|
+
v2f vert (appdata v)
|
94
|
+
{
|
95
|
+
v2f o;
|
96
|
+
o.vertex = UnityObjectToClipPos(v.vertex);
|
97
|
+
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
98
|
+
o.color = v.color; // 頂点色をセットする
|
99
|
+
UNITY_TRANSFER_FOG(o,o.vertex);
|
100
|
+
return o;
|
101
|
+
}
|
102
|
+
|
103
|
+
fixed4 frag (v2f i) : SV_Target
|
104
|
+
{
|
105
|
+
fixed4 col = tex2D(_MainTex, i.uv) * i.color; // 受け渡された色を乗算する
|
106
|
+
UNITY_APPLY_FOG(i.fogCoord, col);
|
107
|
+
return col;
|
108
|
+
}
|
109
|
+
ENDCG
|
110
|
+
}
|
111
|
+
}
|
112
|
+
Fallback "Diffuse" // Diffuseに影落としを代行させる
|
113
|
+
}
|
114
|
+
```
|