unity学习之鼠标事件

unity学习,希望我的博客能给喜欢unity的朋友带来帮助

今天完成了游戏的第一个关卡,觉得和别的组不同之处之一就是按钮的不同,登录注册等按钮我没用GUI的Button来做,而是用GUITexture来做,做出来的效果就是当鼠标没在按钮上时是一个状态,当鼠标移动到按钮上是又是另一个状态,当鼠标点击按钮时,又会变另一状态,这不是特效,其实是定义了一组照片和用鼠标事件来做的。下面就让我们来看看鼠标事件和鼠标事件的应用吧。

鼠标事件:

        鼠标事件,都是当鼠标和gui或者碰撞体(Collider)交互时候触发。需要说明的是drag其实就是鼠标down后up之前持续每帧都会发送此消息。

        OnMouseDown:当鼠标上的按钮被按下时触发的事件;

        OnMouseDrag:当用户鼠标拖拽GUI元素或碰撞体时调用;

        OnMouseEnter:当鼠标进入物体范围时被调用;

        OnMouseExit:当鼠标退出时被调用;

        OnMouseOver:当鼠标移动到某对象的上方时触发的事件;

        OnMouseUp:当鼠标按键被松开时触发的事件。

        鼠标事件的应用,代码如下:

  1. using UnityEngine;
  2. using System.Collections;

  3. public class GUI_Login_Button : MonoBehaviour {
  4.     //声明定义GUITexture
  5.     GUITexture guitexture;
  6.     
  7.     //声明一组图片数组
  8.     public Texture[] login_Button_Texture;
  9.     
  10.     //声明两个标志位flag和flag2
  11.     bool flag;
  12.     bool flag2;
  13.         
  14.     //初始化,获取GUITexture
  15.     void Start () {
  16.             guitexture=GetComponent();
  17.         }
  18.     
  19.     //当鼠标进入物体范围时被调用
  20.     void OnMouseEnter() { 
  21.           //图片变换
  22.           guitexture.texture=login_Button_Texture[1];
  23.     }
  24.     
  25.      //当鼠标放到图片上方时触发事件
  26.      void OnMouseOver() { 
  27.         
  28.         //当标志位为真时
  29.         if(flag)
  30.         {
  31.              //图片变换
  32.              guitexture.texture = login_Button_Texture[2];
  33.              
  34.              //if嵌套
  35.              //因为登陆界面的按钮连接着数据库,所以要判断输入的内容在数据库中不为空
  36.              //if括号内的内容是调用的Users类里面的Login方法
  37.              if (new Users().Login(Login.str, Login.str1).Name != null)
  38.              {
  39.                  //跳转到ProgressBar工程
  40.                   Application.LoadLevel("ProgressBar");
  41.              }
  42.              //否则,当name为空时,flag2为ture,执行下面的触发器
  43.              else {
  44.                  flag2 = true;
  45.              }
  46.              //if嵌套完成
  47.          
  48.         }
  49.         else
  50.         {
  51.            //否则,图片变换
  52.             guitexture.texture=login_Button_Texture[1];
  53.         }   
  54.     }
  55.     void OnGUI() {
  56.         if (flag) {
  57.             //标志位判断
  58.             //设置字体的颜色和创建Label,放置校验
  59.             GUI.color = Color.red;
  60.             GUI.Label(new Rect(560, 360, 300, 50), "密码或账号错误,请重新输入!");
  61.         }
  62.     }
  63.     //当鼠标退出时被调用
  64.     void OnMouseExit() { 
  65.         guitexture.texture=login_Button_Texture[0];
  66.     }
  67.     //当鼠标上的按钮被按下时触发的事件
  68.     void OnMouseDown() {
  69.         flag = true;
  70.     }
  71.     //当鼠标按键被松开时触发的事件,当鼠标松开时,跳转界面
  72.     void OnMouseUp()
  73.     {
  74.         flag = false;
  75.     }
  76. }
         这样就完成了按钮变换的效果,朋友们有兴趣的可以试试哦。

   更多精彩请关注:http://www.gopedu.com/


你可能感兴趣的:(学习整理)