74 lines
2.2 KiB
C#
74 lines
2.2 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
|
|
namespace ZXKFramework
|
|
{
|
|
public class DrawLine : MonoBehaviour
|
|
{
|
|
public GameObject line;
|
|
private List<Vector3> list; //链表存放所用新的位置
|
|
bool isMouseDown = false; //是否可以开始画线
|
|
GameObject tempLine; //临时的线 每次都要建立一条新的线段
|
|
private List<GameObject> allLine = new List<GameObject>();
|
|
public bool isUse = false;
|
|
|
|
void Start()
|
|
{
|
|
if (line == null) return;
|
|
line.SetActiveSafe(false);
|
|
}
|
|
|
|
void Update()
|
|
{
|
|
if (Input.GetMouseButtonDown(0))
|
|
{
|
|
if (line == null || !isUse) return;
|
|
isMouseDown = true;
|
|
tempLine = Instantiate(line);
|
|
allLine.Add(tempLine);
|
|
list = new List<Vector3>();
|
|
}
|
|
if (Input.GetMouseButtonUp(0))
|
|
{
|
|
if (line == null || !isUse) return;
|
|
isMouseDown = false;
|
|
}
|
|
if (isMouseDown)
|
|
{
|
|
Vector3 vec3 = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 5);
|
|
vec3 = Camera.main.ScreenToWorldPoint(vec3);
|
|
//vec3.Set(vec3.x, vec3.y, 0f);
|
|
list.Add(vec3);
|
|
if (list.Count >= 2)
|
|
{
|
|
tempLine.SetActiveSafe(true);
|
|
tempLine.GetOrAddComponent<Line>().list = list;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void CleanAll()
|
|
{
|
|
if (allLine.Count != 0)
|
|
{
|
|
for (int i = 0; i < allLine.Count; i++)
|
|
{
|
|
Debug.Log(allLine[i]);
|
|
DestroyImmediate(allLine[i]);
|
|
}
|
|
allLine.Clear();
|
|
}
|
|
}
|
|
|
|
public void CleanLast()
|
|
{
|
|
if (allLine.Count != 0)
|
|
{
|
|
GameObject loObj = allLine[allLine.Count - 1];
|
|
allLine.Remove(loObj);
|
|
DestroyImmediate(loObj);
|
|
}
|
|
}
|
|
}
|
|
} |