这两天在研究画线的东西。直到昨天才小有成效。拿出来和大家分享一下。先上图:
以前曾经尝试过用LineRender写画线的功能,但是在拐弯的时候会出现变形和扭曲。所以才决定用绘制Mesh的方法写一个画线的功能。
东西其实很简单,稍微有一点数学的知识,用到了三角函数。还有一些关于构造Mesh的相关代码。下面有草图一张:
黑色的线框代表画出来的模型线,PointA和PointB代表获取的起始点和终结点,A,B,C,D为Mesh的四个顶点。
已知起始点和终结点和线宽,就可以求出四个顶点的坐标。并根据这四个顶点绘制出Mesh.
至于具体的实现细节,大家看代码吧。
DrawMeshLine类:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class DrawMeshLine : MonoBehaviour
{
//线容器
List<Vector3> LinePointContainer;
//线宽
public float LineWidth = 0.5f;
//地形层
public int Layer = 8;
//线物体父物体
GameObject LineObj;
void Start ()
{
LinePointContainer = new List<Vector3>();
LineObj = new GameObject("Lines");
}
void Update ()
{
if(Input.GetMouseButtonDown(0))
{
Ray