Unity实现鼠标画画的功能

在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 组件,并设置好材质和线宽等参数。
运行游戏,在场景视图中按下鼠标左键并拖动即可进行画画,松开鼠标左键则结束画画。

猜你喜欢

转载自blog.csdn.net/qq_14942529/article/details/130836207
今日推荐