1. 程式人生 > >Unity 滑鼠懸停

Unity 滑鼠懸停

程式實現效果:

  
 using UnityEngine.EventSystems;

  void Update()
    {
        //滑鼠按下的時候認為是退出狀態
        if (Input.GetKey(KeyCode.Mouse0) || Input.GetKey(KeyCode.Mouse1))
        {
            //除了leftAlt鍵盤之外
            if (Input.GetKey(KeyCode.LeftControl))
            {
                return;
            }
            mouse_Hover_Exit(null);
        }
    }

    void Start()
    {
        WindowCtrl_Click();
    }


    private void WindowCtrl_Click()
    {
        //新增滑鼠懸浮事件
        EventTrigger trigger = GetComponent();
        if (null == trigger)
        {
            trigger = gameObject.AddComponent();
        }
        //滑鼠懸停進入
        EventTrigger.Entry hoverOnEntry = new EventTrigger.Entry();
        //如果時滑鼠懸浮進入
        hoverOnEntry.eventID = EventTriggerType.PointerEnter;
        hoverOnEntry.callback.AddListener((data) => { mouse_Hover_On((PointerEventData)data); });
        trigger.triggers.Add(hoverOnEntry);

        //滑鼠懸浮退出
        EventTrigger.Entry hoverExitentry = new EventTrigger.Entry();
        //如果時滑鼠懸浮退出
        hoverExitentry.eventID = EventTriggerType.PointerExit;
        hoverExitentry.callback.AddListener((data) => { mouse_Hover_Exit((PointerEventData)data); });
        trigger.triggers.Add(hoverExitentry);

        //滑鼠懸浮退出
        EventTrigger.Entry pressEntry = new EventTrigger.Entry();
        //如果時滑鼠懸浮進入
        pressEntry.eventID = EventTriggerType.PointerDown;
        pressEntry.callback.AddListener(delegate { mouse_Press_Down(); });
        trigger.triggers.Add(pressEntry);
    }

    private void mouse_Press_Down()
    {

    }

    /// 
    /// 滑鼠懸停退出
    /// 
    /// 
    private void mouse_Hover_Exit(PointerEventData data)
    {
        this.gameObject.GetComponent().DOPlayBackwards();
        this.gameObject.GetComponent().UpdateParam(false);
    }

    /// 
    /// 滑鼠懸停進入
    /// 
    /// 
    private void mouse_Hover_On(PointerEventData data)
    {
        this.gameObject.GetComponent().DOPlayForward();
        this.gameObject.GetComponent().UpdateParam(true);
    }

解釋一下: 本人寫的是當滑鼠懸停在該物體上時正序播放動畫,離開時則倒序播放。可以根據需求修改mouse_Hover_Exit,mouse_Hover_On,mouse_Press_Down方法即可。

相關推薦

Unity 滑鼠懸停

程式實現效果: using UnityEngine.EventSystems; void Update() { //滑鼠按下的時候認為是退出狀態 if (Input.GetKey(KeyCode.Mou

Unity滑鼠懸停實現圖片的浮動效果

[RequireComponent(typeof(LayoutElement))]public class EventTriggerListener : EventTrigger{public delegate void VoidDelegate(GameObject obj);//點選public Void

jQuery相簿關燈模式(光線聚焦於滑鼠懸停位置)_程式碼練習

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> *{ margin: 0px;

jQuery滑鼠懸停展示下拉框

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>jQuery實現懸停下拉選單</title> <style type="text/c

Axure Button 按鈕 點選,滑鼠懸停,改變按鈕的背景色並且新增陰影,滑鼠移開恢復原狀

第一步:建立按鈕Btn 第二步:轉為動態面板,即可以互動的面板 轉換後文件成為動態面板 第三步:新增要互動的按鈕樣式 自動生成(我改了名字) 第四步:選中LoginBtn(此按鈕會出現在頁面的左上角) 如: 第五步:新增陰影,背景色 第

bootstrap怎麼設定下拉選單不點選,改成滑鼠懸停直接顯示下拉選單

方法一: 實際上比較簡單,只需要加一個css設定下hover的狀態,把下拉選單設定成block,具體css:.nav > li:hover .dropdown-menu {display: block;}  但是主導航失去連結的效

unity 滑鼠懸浮於物體上 物體變色

void OnMouseOver()//滑鼠懸浮於按鈕之上,按鈕顏色變化 { this.transform.Find("default").GetComponent<MeshRenderer>().material.color = new Colo

[Html5 canvas]滑鼠懸停吸附粒子背景特效

github地址:https://github.com/hustcc/canvas-nest.js   引用方法: 1.官方tip:使用方法很簡單隻需要再body中間插入這段js程式碼即可,注意不要放在head裡面 配置:顏色:預設是(0,0,0),格式是(R,G,B)    透明度:(0

為何有的連結滑鼠懸停顯示小手有的沒有

<a href="#" style="cursor:default">aaa</a> default 預設游標(通常是一個箭頭) auto 預設。瀏覽器設定的游標。 crosshair 游標呈現為十字線。 pointer 游標呈現為指示連結的指標(一隻手) move 此游

JS基礎(二)事件監聽練習之table滑鼠懸停行變色

JS監聽事件簡單學習:   [object].addEvent("事件型別","處理函式","冒泡事件或捕獲事件");    [object].removeEvent("事件型別","處理函式","冒泡事件或捕獲事件"); 場景:   表格標題行背景色是黃色,奇數行是白色,偶數行是灰色。  

div 中 滑鼠懸停 和 離開事件 圖片修改 和背景修改

.kuan{        border: 1px solid #1aa094;padding: 10px 0; width: 145px;height:40px;     -webkit-border-radius: 8px;

python3 + selenium 滑鼠懸停操作

方法: ActionChains(driver).move_to_element(element).perform() 百度示例程式碼: from time import ctime,sleep

jquery實現圖片向左慢慢輪播(滑鼠懸停圖片停止輪播版)

window.onload=function(){ function $(id){ return document.getElementById(id); } var num=0; function autopl

jsp td滑鼠懸停滑鼠移開內容改變

目前的想法是給td之前和之後各放一個td.當然這兩個td是隱藏的.如下: <td style="text-align: left; display:none;" class="blue" ><label class="control-label la

Unity滑鼠控制相機上下左右環視360度旋轉(Quaternion.AngleAxis)

之前實現的是相機的360度旋轉,用的是LocalEulerAngle,這一篇文章實現用的是Quaternion.AngleAxis,這個方法將繞某個軸旋轉的角度轉為四元數 目前的四元數=初始的四元數*繞X軸轉的四元數*繞Y軸轉的四元數  理解也比較好理解,就是繞某個軸旋轉

onmouse實現滑鼠懸停內容顯示及隱藏

先上程式碼: <html> <head> <title>js操作</title> <style> .div_in{ width:330px; height:165px; }

unity 滑鼠拖拽物體移動

    private Camera cam;//發射射線的攝像機     private GameObject go;//射線碰撞的物體     private Vector3 screenSpace;     pri

unity 滑鼠360度旋轉攝像機,帶角度限制

public Transform target;//相機的目標     private float xSpeed = 200;//x軸的旋轉速度     private float ySpeed = 150;//x軸的旋轉速度     pu

webdriver_api_滑鼠懸停用到Actionchains類

什麼是滑鼠懸停:將滑鼠移到一個超連結文字上,不用去點選就會顯示一個二級選單出來 對於這種定位,它的定位方式有點不同,第一:它不需要點選“設定”就能顯示二級選單,第二:如果將“設定”看作一個點選鍵去進行元素定位,又定位不出來,所以引進Actionchains這個類中方法來

intellij idea設定滑鼠懸停提示

2018年11月07日 16:54:47 農婦山泉有點田-VIP 閱讀數:1 個人分類: 工具設定