随机数,image拖拽

using UnityEngine;
using System.Collections;
using System;
using System.Collections.Generic;
using System.Linq;

public class FactoryStart : MonoBehaviour {
    /// <summary>
    /// 随机生成6个0到12之间的互不相同的整数
    /// </summary>
    public GameObject[] points;
    HashSet<int> s = new HashSet<int>();
    public int[] num;
    void Start () {
                        
        System.Random rnd = new System.Random();
        while (s.Count < 6)
        {
            s.Add(rnd.Next(0, 12));
        }
         num=s.ToArray();
        foreach (var item in num)
        {
            Debug.Log("::"+item);
        }   
    }
    
}


//image拖拽

using UnityEngine;using System.Collections;using UnityEngine.EventSystems;using System;//拖拽image//给空间添加监听事件要实现的一些接口public class MyDrag : MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandler, IEndDragHandler, IPointerEnterHandler, IPointerExitHandler{ public RectTransform canvas; //得到canvas的ugui坐标 private RectTransform imgRect; //得到图片的ugui坐标 Vector2 offset = new Vector3(); //用来得到鼠标和图片的差值 Vector3 imgReduceScale = new Vector3(0.8f, 0.8f, 1); //设置图片缩放 Vector3 imgNormalScale = new Vector3(1, 1, 1); //正常大小 // Use this for initialization void Start() { imgRect = GetComponent();

    }

    //当鼠标按下时调用 接口对应  IPointerDownHandler

    public void OnPointerDown(PointerEventData eventData)

    {

        Vector2 mouseDown = eventData.position;    //记录鼠标按下时的屏幕坐标

        Vector2 mouseUguiPos = new Vector2();  //定义一个接收返回的ugui坐标

        //RectTransformUtility.ScreenPointToLocalPointInRectangle():把屏幕坐标转化成ugui坐标

        //canvas:坐标要转换到哪一个物体上,这里img父类是Canvas,我们就用Canvas

        //eventData.enterEventCamera:这个事件是由哪个摄像机执行的

        //out mouseUguiPos:返回转换后的ugui坐标

        //isRect:方法返回一个bool值,判断鼠标按下的点是否在要转换的物体上

        bool isRect = RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas, mouseDown, eventData.enterEventCamera, out mouseUguiPos);

        if (isRect)  //如果在

        {

            //计算图片中心和鼠标点的差值

            offset = imgRect.anchoredPosition - mouseUguiPos;

        }

    }

    //当鼠标拖动时调用  对应接口 IDragHandler

    public void OnDrag(PointerEventData eventData)

    {

        Vector2 mouseDrag = eventData.position;  //当鼠标拖动时的屏幕坐标

        Vector2 uguiPos = new Vector2();  //用来接收转换后的拖动坐标

        //和上面类似

        bool isRect = RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas, mouseDrag, eventData.enterEventCamera, out uguiPos);

        if (isRect)

        {

            //设置图片的ugui坐标与鼠标的ugui坐标保持不变

            imgRect.anchoredPosition = offset + uguiPos;

        }

    }

    //当鼠标抬起时调用  对应接口  IPointerUpHandler

    public void OnPointerUp(PointerEventData eventData)

    {

        offset = Vector2.zero;

    }

    //当鼠标结束拖动时调用  对应接口  IEndDragHandler

    public void OnEndDrag(PointerEventData eventData)

    {

        offset = Vector2.zero;

    }

    //当鼠标进入图片时调用  对应接口  IPointerEnterHandler

    public void OnPointerEnter(PointerEventData eventData)

    {

        imgRect.localScale = imgReduceScale;  //缩小图片

    }

    //当鼠标退出图片时调用  对应接口  IPointerExitHandler

    public void OnPointerExit(PointerEventData eventData)

    {

        imgRect.localScale = imgNormalScale;  //回复图片

    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天我们又游学了三个地点。 我们先去了大邑刘氏地主庄园,然后再去了川剧博物馆,最后我们去了宽窄巷子去看了川剧表...
    朱春邦z阅读 877评论 0 0
  • 人之所以区别于其他动物的原因,就是人会思考,同时也能将思考后的结果付之于行动。自从有了文字以来,书籍就随之出现。那...
    玖品生活阅读 336评论 0 0
  • 今儿是三十,吃了午饭以后就该准备年夜饭,过除夕了!为了图省事儿,咱中午就没有做饭,吃点饺子得了。将就一顿,反正过年...
    大大灰狼阅读 398评论 0 1

友情链接更多精彩内容