回答編集履歴

1

ラインマテリアルの例を追記

2019/11/03 19:11

投稿

Bongo
Bongo

スコア10807

test CHANGED
@@ -101,3 +101,127 @@
101
101
 
102
102
 
103
103
  ![図2](547d9f436ac2433b2a98067a8870ec5f.png)
104
+
105
+
106
+
107
+ **ラインマテリアルの例**
108
+
109
+ ```ShaderLab
110
+
111
+ Shader "Unlit/UnlitLine"
112
+
113
+ {
114
+
115
+ Properties
116
+
117
+ {
118
+
119
+ _MainTex ("Texture", 2D) = "white" {}
120
+
121
+ }
122
+
123
+ SubShader
124
+
125
+ {
126
+
127
+ Tags { "RenderType"="Opaque" }
128
+
129
+
130
+
131
+ Pass
132
+
133
+ {
134
+
135
+ CGPROGRAM
136
+
137
+ #pragma vertex vert
138
+
139
+ #pragma fragment frag
140
+
141
+ #pragma multi_compile_fog
142
+
143
+
144
+
145
+ #include "UnityCG.cginc"
146
+
147
+
148
+
149
+ struct appdata
150
+
151
+ {
152
+
153
+ float4 vertex : POSITION;
154
+
155
+ fixed4 color : COLOR; // 入力データとして頂点色を追加する
156
+
157
+ float2 uv : TEXCOORD0;
158
+
159
+ };
160
+
161
+
162
+
163
+ struct v2f
164
+
165
+ {
166
+
167
+ float2 uv : TEXCOORD0;
168
+
169
+ fixed4 color : COLOR; // v2fにも色データを追加する
170
+
171
+ UNITY_FOG_COORDS(1)
172
+
173
+ float4 vertex : SV_POSITION;
174
+
175
+ };
176
+
177
+
178
+
179
+ sampler2D _MainTex;
180
+
181
+ float4 _MainTex_ST;
182
+
183
+
184
+
185
+ v2f vert (appdata v)
186
+
187
+ {
188
+
189
+ v2f o;
190
+
191
+ o.vertex = UnityObjectToClipPos(v.vertex);
192
+
193
+ o.uv = TRANSFORM_TEX(v.uv, _MainTex);
194
+
195
+ o.color = v.color; // 頂点色をセットする
196
+
197
+ UNITY_TRANSFER_FOG(o,o.vertex);
198
+
199
+ return o;
200
+
201
+ }
202
+
203
+
204
+
205
+ fixed4 frag (v2f i) : SV_Target
206
+
207
+ {
208
+
209
+ fixed4 col = tex2D(_MainTex, i.uv) * i.color; // 受け渡された色を乗算する
210
+
211
+ UNITY_APPLY_FOG(i.fogCoord, col);
212
+
213
+ return col;
214
+
215
+ }
216
+
217
+ ENDCG
218
+
219
+ }
220
+
221
+ }
222
+
223
+ Fallback "Diffuse" // Diffuseに影落としを代行させる
224
+
225
+ }
226
+
227
+ ```