核心代码
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{
public LineRenderer lineRenderer;
private List<Vector2> pointList = new List<Vector2>();
private void Start()
{
lineRenderer.positionCount = 0;
}
private void Update()
{
if (Input.GetMouseButton(0))
{
Vector2 position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (!pointList.Contains(position))
{
//画线
lineRenderer.positionCount++;
lineRenderer.SetPosition(lineRenderer.positionCount - 1, position);
pointList.Add(position);
//添加碰撞体
if (pointList.Count > 1)
{
Vector2 point1 = pointList[lineRenderer.positionCount - 2];
Vector2 point2 = pointList[lineRenderer.positionCount - 1];
GameObject go = new GameObject("Collider");
go.transform.parent = lineRenderer.transform;
go.transform.localPosition = (point1 + point2) / 2;
go.AddComponent<BoxCollider2D>();
go.GetComponent<BoxCollider2D>().size = new Vector2((point2 - point1).magnitude, lineRenderer.endWidth);
go.transform.right = (point1 - point2).normalized;
}
}
}
}
}