Unity 截图选择框,中间全透明,边缘半透明

效果:点击白色框可拖拽选择区域

代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public class jietu : MonoBehaviour, IDragHandler, IEndDragHandler,IBeginDragHandler
{
    void Start()
    {
        //DrawTriangle(30, 0, 100, 250, 200, 100, mat);//三角形的三个定点坐标
    }

    public void OnBeginDrag(PointerEventData eventData)
    {
        dragObj = eventData.rawPointerPress;
    }

    public void OnDrag(PointerEventData eventData)
    {
        if (dragObj!=null)
        {
            dragObj.transform.position = Input.mousePosition;

            leftBottomPos   = leftBottom.transform.position;
            leftTopPos      = leftTop.transform.position;
            rightTopPos     = rightTop.transform.position;
            rightBottomPos = rightBottom.transform.position;

            if (dragObj.Equals(leftBottom))
            {
                leftTopPos.x = dragObj.transform.position.x;
                rightBottomPos.y= dragObj.transform.position.y;
                leftTop.transform.position = leftTopPos;
                rightBottom.transform.position = rightBottomPos;
            }
            else if (dragObj.Equals(leftTop))
            {
                leftBottomPos.x = dragObj.transform.position.x;
                rightTopPos.y = dragObj.transform.position.y;
                leftBottom.transform.position = leftBottomPos;
                rightTop.transform.position = rightTopPos;
            }
            else if (dragObj.Equals(rightTop))
            {
                rightBottomPos.x = dragObj.transform.position.x;
                leftTopPos.y = dragObj.transform.position.y;
                rightBottom.transform.position = rightBottomPos;
                leftTop.transform.position = leftTopPos;
            }
            else if (dragObj.Equals(rightBottom))
            {
                rightTopPos.x = dragObj.transform.position.x;
                leftBottomPos.y = dragObj.transform.position.y;
                rightTop.transform.position = rightTopPos;
                leftBottom.transform.position = leftBottomPos;
            }
        }

    }

    public void OnEndDrag(PointerEventData eventData)
    {
        dragObj = null;
    }

    GameObject dragObj;

    public GameObject leftBottom;
    public GameObject leftTop;
    public GameObject rightTop;
    public GameObject rightBottom;

    Vector2 leftBottomPos   = Vector2.zero;
    Vector2 leftTopPos      = Vector2.zero;
    Vector2 rightTopPos     = Vector2.zero;
    Vector2 rightBottomPos  = Vector2.zero;

    public Material mat;
    void OnRenderObject()
    {
        DrawTriangle();//三角形的三个定点坐标
    }
    void DrawTriangle()
    {
        GL.PushMatrix();
        mat.SetPass(0);
        GL.LoadOrtho();
        GL.Begin(GL.QUADS);//顺时针方向

        //顶部
        GL.Vertex3(leftTop.transform.position.x / Screen.width, leftTop.transform.position.y / Screen.height, 0);
        GL.Vertex3(0, 1, 0);
        GL.Vertex3(1, 1, 0);
        GL.Vertex3(rightTop.transform.position.x / Screen.width, rightTop.transform.position.y / Screen.height, 0);

        //右侧
        GL.Vertex3(rightBottom.transform.position.x / Screen.width, rightBottom.transform.position.y / Screen.height, 0);
        GL.Vertex3(rightTop.transform.position.x / Screen.width, rightTop.transform.position.y / Screen.height, 0);
        GL.Vertex3(1, 1, 0);
        GL.Vertex3(1, 0, 0);

        //底部
        GL.Vertex3(0, 0, 0);//屏幕左下角
        GL.Vertex3(leftBottom.transform.position.x / Screen.width, leftBottom.transform.position.y / Screen.height, 0);//屏幕左上角
        GL.Vertex3(rightBottom.transform.position.x / Screen.width, rightBottom.transform.position.y / Screen.height, 0);//屏幕右上角
        GL.Vertex3(1, 0, 0);//屏幕右下角

        //左侧
        GL.Vertex3(0, 0, 0);
        GL.Vertex3(0, 1, 0);
        GL.Vertex3(leftTop.transform.position.x / Screen.width, leftTop.transform.position.y / Screen.height, 0);
        GL.Vertex3(leftBottom.transform.position.x / Screen.width, leftBottom.transform.position.y / Screen.height, 0);

        GL.End();
        GL.PopMatrix();
    }
}

  

unity里的设置

原文地址:https://www.cnblogs.com/Jason-c/p/11395459.html

时间: 2024-10-14 21:34:03

Unity 截图选择框,中间全透明,边缘半透明的相关文章

纯javascript实现选择框的全选与反选

HTML部分 <div id="wrap_input_box" > <input type="checkbox"><br> <input type="checkbox"><br> <input type="checkbox"><br> <input type="checkbox"><br> <i

Unity编辑器扩展Texture显示选择框

学习NGUI插件的时候,突然间有一个问题为什么它这些属性可以通过弹出窗口来选中呢? 而我自己写的组件只能使用手动拖放的方式=.=. Unity开发了组件Inspector视图扩展API,如果我们要写插件方便别人来使用,使用编辑器扩展API让我们的组件显示的更华丽,使用方便 Texture弹出选择框选中图片赋值: 1个组件对应1个Edit扩展器,继承Editor必须让入Editor文件夹下 MyComponent: using UnityEngine; using System.Collectio

js做全选,用一个checkbox复选框做多个checkbox复选框的全选按钮,有一个复选框未被选择时,全选按钮的checked就为false

用一个checkbox复选框做多个checkbox复选框的全选按钮,有一个复选框未被选择时,全选按钮的checked就为false,当所有checkbox都被选中时,全选按钮也被选中. 详解: 有两种方式使<input type="checkbox" />中的复选框被选中. 方法一:直接在HTML行间中添加checked属性.   eg:<input type="checkbox" checked /> 方法二:使用javascript使in

JS如何实现对name是数组的复选框的全选和反选以及取消选择

JS如何实现对name是数组的复选框的全选和反选以及取消选择? form内容如下: 因为PHP接收要用 数组形式的 复选框,正常情况下 JQ可如果是这种 直接使用 $("input[name=ptpt])即可.但是这种php接收的只是最后一个值,字符串.<label><input type='checkbox' name='ptpt' value='a1' />a1</label><label><input type='checkbox' n

表单选择框

实现要求:1.点击全选框,将所有的选择框选中 2.点击全不选框,将所有选中的选中框全部清除选中,处于没有选中的状态. 3.点击反选,将已经选中的框变为没有选中,将没有选中的框,变为选中. 要点: :checkbox 匹配所有复选框 attr('checked',true/false) HTML中基本框架: js 实现全选功能: $('#all').on('click',function(){ $('#checkbox>:checkbox').attr('checked',true); }); 实

多选框的全选、全不选、反选

要实现多选框的选择相关映射,要实现以下逻辑: 1.全选框被点击时,所以子选框被选中. 2.当全选状态下,子选框的其中一个撤销点击,全选框自动unchecked 3.为全选状态下,子选框一个个全部选中,最后一个子选框框点击之后,全选框自动checked var information=$("#"+flag).find(".information");  var $newsCheck = information.find("input[name='newsCh

类似于铁道部12306的城市选择框的实现

第一次写,有点小紧张... 这两天研究铁道部的余票查询系统,参考网上大牛们的经典案例,也有了一些自己的心得,写在自己程序猿的道路上记录一下,也和大家一起分享,写的不好莫怪,大牛可以自动过滤,非喜勿喷,谢谢~ 今天先简单的介绍一下城市选择框的实现,与12306官网有一点差距,上图,先看看效果:      如图所示,支持拼音首字母查询,全拼音查询,汉字查询等 好了,现在谈一谈我是怎么实现的 首先是准备工作: 我们需要把城市的信息存入我们的数据库中,城市数据来源:https://kyfw.12306.

复选框的全选(引自锋利的jQuery)

1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta name="generator" content="text/html" charset="utf-8" /> 5 <title>复选框组的全选/非全选</title> 6 <script

js实现复选框的全选、全不选、反选

js中实现复选框的全选,全不选以及反选,分为两种情况: (1)选中“请选择”前面的复选框实现全选,不选中“请选择”前面的复选框实现全不选 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org