以前用过Vectrosity来画过线,但时间久了忘记怎么用了,也忘记能不能画虚线了。试了一下Unity的LineRenderer加上一个材质来画虚线,但是它是把我们的贴图给拉伸覆盖创建出来的mesh的,忘记保存我的实验效果了。。。可能改改Shader还可以用吧。针扎一番后决定自己用GL写,由于Unity中GL与真正的GL有差距,所以虚线费了点事。
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public enum LineType
{
Dashed,
Line
}
public class VectorLines : MonoBehaviour
{
private static VectorLines inst;
public static VectorLines instance
{
get
{
if (inst == null)
{
inst = Camera.main.transform.gameObject.AddComponent<VectorLines>();
}
return inst;
}
}
private Dictionary<Line, Callback0> lines;
private Material lineMaterial;
void Awake()
{
lines = new Dictionary<Line, Callback0>();
lineMaterial = new Material("Shader \"Lines/Colored Blended\" {" +
"SubShader { Pass {" +
" BindChannels { Bind \"Color\",color }" +
" Blend SrcAlpha OneMinus