当前位置: 首页 > news >正文

wordpress添加站点唐山培训网站建设

wordpress添加站点,唐山培训网站建设,自己做的网站为什么访问不,单人做网站需要掌握哪些知识笔刷大小调节 上面的代码中其实我们已经提供了笔刷大小的字段#xff0c;即brushSize#xff0c;现在只需要将该字段和界面中的Slider绑定即可#xff0c;Slider值的范围我们设置为1~20 代码中只需要做如下改动#xff1a; public Slider brushSizeSlider; //控制笔刷大…笔刷大小调节 上面的代码中其实我们已经提供了笔刷大小的字段即brushSize现在只需要将该字段和界面中的Slider绑定即可Slider值的范围我们设置为1~20 代码中只需要做如下改动 public Slider brushSizeSlider; //控制笔刷大小的滑动条 public float brushSize brushSizeSlider.value; //笔刷大小取滑动条的值 完整代码如下 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class Painter : MonoBehaviour {public RenderTexture renderTexture;public Slider brushSizeSlider;public Texture2D brushTexture; //笔刷纹理public float brushSize brushSizeSlider.value; //笔刷大小public float resolutionMultiplier 5; //线性插值密度调节private Vector2 previousMousePos; //记录上一帧鼠标的位置 void Update(){if (Input.GetMouseButtonDown(0)){previousMousePos Input.mousePosition;}if (Input.GetMouseButton(0)){var mousePosition Input.mousePosition;DrawLine(previousMousePos, mousePosition);previousMousePos mousePosition;}}private void DrawLine(Vector2 start, Vector2 end){float distance Vector2.Distance(start, end);int steps Mathf.CeilToInt(distance * resolutionMultiplier);for (int i 0; i steps; i){float t i / (float)steps;int x Mathf.FloorToInt(Mathf.Lerp(start.x, end.x, t));int y Mathf.FloorToInt(Mathf.Lerp(start.y, end.y, t));DrawBrush(x, y);}}private void DrawBrush(int x, int y){Rect brushRect new Rect(x, y, brushSize, brushSize);Graphics.SetRenderTarget(renderTexture);GL.PushMatrix();GL.LoadPixelMatrix(0, renderTexture.width, 0, renderTexture.height);Graphics.DrawTexture(brushRect, brushTexture);GL.PopMatrix();Graphics.SetRenderTarget(null);}}效果优化  运行效果如下图可见虽然笔刷粗细已可以调节但是在调节过程中滑动的同时滑动条周围有绘制的线条这本不该出现的出现的原因是因为我们监听了鼠标按下的事件来绘制这导致在操作滑动条的时候绘制依然在进行。 操作UI时屏蔽绘制 我们需要检测当前的鼠标是否在UI元素上如果在则不进行绘制这可以使用EventSystem的射线检测来实现如下我们定义一个函数当光标在UI元素上的时候返回true否则返回false private bool IsPointerOverUIElement() {PointerEventData eventData new PointerEventData(EventSystem.current);eventData.position Input.mousePosition;ListRaycastResult results new ListRaycastResult();EventSystem.current.RaycastAll(eventData, results);return results.Count 0; } 我们在鼠标左键点击的时候判断是否在UI元素上如果在则禁止绘制 但有个问题我们用来绘制的RawImage也是UI元素它铺满整个屏幕这会导致我们始终没办法绘制我们可以将其Raycast Target关掉这样再操作UI元素的时候就不会进行多余的绘制了 完整代码如下 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class Painter : MonoBehaviour {public RenderTexture renderTexture;public Slider brushSizeSlider; //控制笔刷大小的滑动条public Texture2D brushTexture; //笔刷纹理public float brushSize brushSizeSlider.value; //笔刷大小取滑动条的值public float resolutionMultiplier 5; //线性插值密度调节private Vector2 previousMousePos; //记录上一帧鼠标的位置 private bool startFromUIElement false; //点击是否是从UI元素上开始的void Update(){//判断光标是否在UI元素上if (Input.GetMouseButtonDown(0)){if (IsPointerOverUIElement()){startFromUIElement true;}previousMousePos Input.mousePosition;}if (Input.GetMouseButton(0) !startFromUIElement){var mousePosition Input.mousePosition;DrawLine(previousMousePos, mousePosition);previousMousePos mousePosition;}if (Input.GetMouseButtonUp(0)){startFromUIElement false;}}private void DrawLine(Vector2 start, Vector2 end){float distance Vector2.Distance(start, end);int steps Mathf.CeilToInt(distance * resolutionMultiplier);for (int i 0; i steps; i){float t i / (float)steps;int x Mathf.FloorToInt(Mathf.Lerp(start.x, end.x, t));int y Mathf.FloorToInt(Mathf.Lerp(start.y, end.y, t));DrawBrush(x, y);}}private void DrawBrush(int x, int y){Rect brushRect new Rect(x, y, brushSize, brushSize);Graphics.SetRenderTarget(renderTexture);GL.PushMatrix();GL.LoadPixelMatrix(0, renderTexture.width, 0, renderTexture.height);Graphics.DrawTexture(brushRect, brushTexture);GL.PopMatrix();Graphics.SetRenderTarget(null);}private bool IsPointerOverUIElement(){PointerEventData eventData new PointerEventData(EventSystem.current);eventData.position Input.mousePosition;ListRaycastResult results new ListRaycastResult();EventSystem.current.RaycastAll(eventData, results);return results.Count 0;}}在下一节我将为大家介绍如何调节线条的颜色~
http://www.hkea.cn/news/14478782/

相关文章:

  • 国外网站如何建设网上注册网站要钱吗
  • 网站怎么建设商城wordpress支付下载地址
  • 免费建立平台网站c 网站开发数据库连接
  • 专业英文网站制作winscp怎么做网站
  • 电子政务网站建设法律法规wordpress 企业主题安装后不一样
  • 青岛做网站eoe网站一级栏目
  • 拍卖行 网站建设哈尔滨建筑网
  • 绍兴网站建设做网站关于公司网站建设的申请
  • 开源课程 视频网站模板人力资源培训与开发
  • 如何建立自己手机网站天水+网站建设
  • 内蒙古建设兵团网站团购网站大全做相册
  • 建设电影网站代码网站建设类型
  • 桂林北站到桂林站多远企业建站平台
  • 数据分析师是干嘛的兰州新站seo
  • 大型网站建设流程网站上怎么在图片里面做链接
  • 网站维护很难吗贵州网站建设hsyunso
  • 绵阳建设局网站如何制作自己的网站图?
  • dnf怎么做辅助网站服务器安全模式怎么进
  • 上海旅游网站建设网站规划 设计 制作 发布与管理过程
  • 沙发网站建设关于电商网站建设与管理的书籍
  • 定制化网站开发费用公司网站设计很好的
  • 做企业网站什么软件好做spa的网站怎么推广
  • 在线医疗网站建设官方网站百度一下
  • 网站头部样式个人小程序怎么做
  • 网站建设明薇通网络网站建设 小影seo
  • 自己做图网站seo方案
  • 抚州企业网站做优化个人网站设计成品下载
  • 容桂销售型网站建设门户网站简单模板
  • 卖汽车怎么做网站wordpress 國内加速
  • 便宜虚拟主机做网站备份沪尚茗居装修价格怎样