在unity里面实现一个功能,通过按下鼠标左键开始在平面上画画,松开鼠标左键结束画画
using UnityEngine;
public class Drawing : MonoBehaviour
{
private LineRenderer lineRenderer; // 线渲染器
private int vertexCount = 0; // 顶点数计数器
private bool mouseDown = false; // 鼠标状态标记
void Start()
{
lineRenderer = GetComponent<LineRenderer>(); // 获取组件
lineRenderer.positionCount = 0; // 初始化顶点数
lineRenderer.material.color = Color.black; // 设置线颜色
}
void Update()
{
if (Input.GetMouseButtonDown(0)) // 检测鼠标左键是否按下
{
lineRenderer.positionCount = 0; // 重置顶点数
vertexCount = 0; // 重置顶点计数器
mouseDown = true; // 标记鼠标按下
}
if (Input.GetMouseButtonUp(0)) // 检测鼠标左键是否松开
{
mouseDown = false; // 标记鼠标松开
}
if (mouseDown) // 检测鼠标状态
{
// 将鼠标的世界坐标投影到平面上
Vector3 pos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10f);
pos = Camera.main.ScreenToWorldPoint(pos);
// 添加一个新的顶点
lineRenderer.positionCount = vertexCount + 1;
lineRenderer.SetPosition(vertexCount, pos);
vertexCount++;
}
}
}
使用方法:
将该脚本添加到游戏对象上。
确保该游戏对象上有 Line Renderer 组件,并设置好材质和线宽等参数。
运行游戏,在场景视图中按下鼠标左键并拖动即可进行画画,松开鼠标左键则结束画画。