码迷,mamicode.com
首页 > 编程语言 > 详细

[Unity实战]虚线的绘制

时间:2015-04-07 13:59:18      阅读:2304      评论:0      收藏:0      [点我收藏+]

标签:shader

说起在unity中画虚线,本人想到了两种方法:

1.无数条小直线组成一条虚线。

2.写一个shader。


前者比较简单,所以这次的重点就放在结合shader实现画虚线了。

首先,需要准备一张背景透明,仅有一条虚线的png图片,如下所示(千万不要以为背景是白色的!)。

技术分享

然后在场景中建一个Plane,把下面的shader给它。

Shader "Custom/NewShader" {
	Properties 
	{
		_MainTex ("Base (RGB)", 2D) = "white" {}
		_Cutoff("Alpha Cutoff", Range(0, 1)) = 0.1
		_Color("Color",Color) = (0,0,0,0)
	}
	SubShader  
    {  
        Pass  
        {
			Material   
            {  
                Diffuse [_Color]  
                Ambient[_Color]  
            }
			Lighting On
            AlphaTest GEqual[_Cutoff]
			
			SetTexture[_MainTex] {}
			SetTexture[_MainTex] {combine texture + primary DOUBLE, previous} 
        }  
    }  
	FallBack "Diffuse"
}


讲解一下上面的shader:

1.将图片中透明值小于0.1的地方不绘制。

2.黑色加任何颜色等于任何颜色,这里的DOUBLE能增强颜色深度


效果图:

技术分享


长度的控制:修改scale的x值

技术分享

角度的控制:修改rotation的z值

技术分享

粗细的控制:修改scale的z值

技术分享

颜色的控制:在面板中修改shader的Color属性

技术分享


值得一提的是,unity自带的shader也有透明度剔除的功能。

技术分享


但是好像没有能修改虚线颜色的,所以就需要我们自己动手去写了。shader的学习还是需要多多实践,亲自动手。

[Unity实战]虚线的绘制

标签:shader

原文地址:http://blog.csdn.net/lyh916/article/details/44918173

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!