资源下载链接 http://download.youkuaiyun.com/download/tianyongheng/10161640
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DrawWay:MonoBehaviour{
private LineRenderer line;
private void Awake()
{
//OnDrawLine(new Vector3[] { Vector3.forward*2,Vector3.forward*8}, new Color(65f / 255f, 231f, 32f / 255f), true);
}
private void OnEnable()
{
//OnDrawLine(new Vector3[] { Vector3.forward * 2, Vector3.forward * 8 }, new Color(65f / 255f, 231f, 32f / 255f), true);
}
private void OnDisable()
{
//HindLine();
}
void NewLine(bool isMat,Color color)
{
if (line==null)
{
Material mat ;
if (isMat)
{
mat = Resources.Load<Material>("Line/line");
}
else
{
mat = new Material(Shader.Find("GUI/Text Shader"));
}
GameObject go = new GameObject();
go.transform.SetParent(transform);
go.AddComponent<LineRenderer>();
LineRenderer newLine = go.GetComponent<LineRenderer>();
newLine.SetWidth(0.5f, 0.5f);
newLine.SetColors(color, color);
Material material = new Material(mat);
newLine.material = mat;
newLine.textureMode = LineTextureMode.RepeatPerSegment;
go.name = "line";
line = newLine;
}
}
/// <summary>
/// /画线
/// </summary>
/// <param name="pos">关键点</param>
/// <param name="clor">线的颜色</param>
/// <param name="isNeedMat">是否用自定义贴图 自定义材质是在Resources/Line/line.mat 其中材质贴图是绘制线的样式</param>
public void OnDrawLine(Vector3[] pos, Color clor = new Color(),bool isNeedMat=false)
{
NewLine(isNeedMat,clor);
List<Vector3>way= iTween.GetCrvePaths(pos);
if (way.Count > 0 )
{
line.SetVertexCount(way.Count);
for (int i = 0; i < way.Count; i++)
{
line.SetPosition(i, way[i]);
}
}
}
/// <summary>
/// 隐藏不销毁画出的线
/// </summary>
public void HindLine()
{
if (line)
{
line.SetVertexCount(0);
}
}
/// <summary>
/// 销毁画线
/// </summary>
public void DestoryLine()
{
if (line)
{
Destroy(line.gameObject);
}
}
}