zoukankan      html  css  js  c++  java
  • uGUI练习(五) Draggable Object

    练习目标

    学习制作一个可拖动的UI

    一、步骤

    监听UI的Drag事件,需要我们写一点点的代码。

    1、创建一个Panel ,设置size为(100,100)

    2、创建DraggableObjectScene.cs脚本

    3、把脚本绑定在Panel上

    image

    4、脚本内容如下:

    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI;
    using UnityEngine.EventSystems;
    
    public class DraggableObjectScene : MonoBehaviour,IDragHandler,IPointerDownHandler,IPointerUpHandler
    {
        //Drag事件,设置目标的位置为鼠标的位置
        public void OnDrag(PointerEventData eventData)
        {
            GetComponent<RectTransform>().pivot.Set(0,0);
            transform.position=Input.mousePosition;
        }
        
        public void OnPointerDown(PointerEventData eventData)
        {
            //缩小
            transform.localScale=new Vector3(0.7f,0.7f,0.7f);
        }
    
        public void OnPointerUp(PointerEventData eventData)
        {
            //正常大小
            transform.localScale=new Vector3(1f,1f,1f);
        }
    }
    

    Class DraggableObjectScene 继承了IDragHandler,IPointerDownHandler,IPointerUpHandler三个接口,从而可以接受到 OnDrag(PointerEventData eventData)  ,OnPointerDown(PointerEventData eventData)   ,OnPointerUp(PointerEventData eventData)  三个事件

    二、事件系统

    Namespace:UnityEngine.EventSystems

    IDragHandler (MouseDrag)

    Interface to implement if you wish to receive OnDrag callbacks.

    IPointerDownHandler (MouseDown)

    Interface to implement if you wish to receive OnPointerDown callbacks.

    IPointerUpHandler (MouseUp)

    Interface to implement if you wish to receive OnPointerUp callbacks.

    三、Drag 效果

    Drag UI

  • 相关阅读:
    尴尬的事情又发生Newtonsoft.Json vs Protobuf.net
    python的多线程到底有没有用?
    Python中单线程、多线程和多进程的效率对比实验
    Python 一篇学会多线程
    Python中threading的join和setDaemon的区别及用法
    Python 函数定义以及参数传递
    python的thread和threading区别
    mod_python
    Maven 入门
    微信开发 没有认证过的服务号怎么办?微信提供了測试号(开通了认证过的服务号的功能)
  • 原文地址:https://www.cnblogs.com/zhaoqingqing/p/3972923.html
Copyright © 2011-2022 走看看