[Unity实战]虚线的绘制

说起在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的学习还是需要多多实践,亲自动手。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值