Unity 实现简单画板画画功能(笔记)


一、搭好场景

  1. 创建一个plan
  2. 摄像机调成正交摄像机
  3. 创建三个cube,附上材质
  4. 再创建一个cube,找个色板,
  5. 创建一个脚本,挂在非失活物体上
  6. 创建一个slider,放在旁边
    在这里插入图片描述

二、写代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Draw : MonoBehaviour {
    LineRenderer line;
    Material mat;
    public Slider slider;
    int num = 0;//总共画画点数
    Color c;
	// Use this for initialization
	void Start () {
        slider.value = 0.1f;
	}
                // Update is called once per frame
    void Update () {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        if (Physics.Raycast(ray,out hit))
        {
            if (Input.GetMouseButtonDown(0))
            {
                if (c==null)
                {
                    return;
                }
                GameObject obj = new GameObject();
                line= obj.AddComponent<LineRenderer>();
                line.material.color= c;
                line.widthMultiplier = slider.value;//宽度
                line.SetPosition(0,hit.point);
                line.SetPosition(1, hit.point);
                num = 0;
            }
            if (Input.GetMouseButton(0))
            {
                num++;
                line.positionCount = num;
                line.SetPosition(num - 1, hit.point+Vector3.up*0.2f);

            }
            if (Input.GetMouseButtonDown(1))
            {
                StartCoroutine(ChangeColor());
            }
        }
	}
    IEnumerator ChangeColor()
    {
        yield return new WaitForEndOfFrame();
        Texture2D texture2D = new Texture2D(Screen.width,Screen.height,TextureFormat.RGB24,true);
        texture2D.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
        texture2D.Apply();
        c = texture2D.GetPixel((int)Input.mousePosition.x, (int)Input.mousePosition.y);
    }
}

三、效果

Unity 画板

  • 11
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Unity是一款专业的游戏开发引擎,但也可以用来实现窗口拖拽缩放功能。在Unity中,可以使用RectTransform组件来控制界面元素的位置和大小。接下来,我将介绍一种简单的方法来实现窗口的拖拽和缩放功能。 首先,在Unity中创建一个UI界面,并添加一个Image组件作为窗口的背景。然后,给窗口的Image组件添加一个拖拽脚本和一个缩放脚本。 拖拽脚本的作用是控制窗口的拖拽功能。在脚本中,我们可以通过监听鼠标按下、鼠标拖动和鼠标放开的事件来实现窗口的拖拽。具体步骤如下: 1. 在脚本中定义一个bool类型的变量,用于判断是否可以进行拖拽操作。 2. 在Update函数中,通过Input.GetMouseButtonDown和Input.GetMouseButtonUp函数判断鼠标是否按下或放开。如果鼠标按下,将上述bool变量设置为true,如果鼠标放开,将bool变量设置为false。 3. 还需要判断鼠标是否在窗口的范围内。可以使用RectTransform组件的rect属性获取窗口的矩形区域,然后使用RectTransformUtility类的ScreenPointToLocalPointInRectangle函数判断鼠标的位置是否在窗口的范围内。 4. 如果鼠标在窗口范围内并且bool变量为true,可以通过RectTransform组件的anchoredPosition属性来设置窗口的位置。 缩放脚本的作用是实现窗口的缩放功能。在脚本中,我们可以通过鼠标滚轮的输入来控制窗口的缩放。具体步骤如下: 1. 在脚本中定义一个float类型的变量,用于控制窗口的缩放比例。 2. 在Update函数中,通过Input.GetAxis函数来获取鼠标滚轮的输入值。 3. 根据鼠标滚轮的输入值来增加或减少窗口的缩放比例。可以使用RectTransform组件的sizeDelta属性来设置窗口的大小。 通过上述步骤,我们可以实现Unity中窗口的拖拽和缩放功能。这样用户就可以通过鼠标来拖动窗口并调整窗口的大小,提升用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X在学了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值