unity 鼠標懸停事件操作
筆者在網(wǎng)上發(fā)現(xiàn)了,很多種方法 ,當然咱們找最好用的,也簡單的 下面廢話不多說直接上代碼 我在啰嗦幾句 第一這個腳本掛在需要相應的游戲體上 第二被掛游戲體必須帶有collider, 第三僅僅制作完上面的兩步 本應該沒有問題,
筆者又發(fā)現(xiàn)一個問題 就是只有鼠標在物體的右上方才會很靈敏的相應到 在在左下方反而沒什么反應 ,為此筆者在腳本上加上了一句
this.GetComponent<BoxCollider> ().size = new Vector3 (1.5f, 1.5f, 1.5f);
原來物體的size 為(1,1,1) 我的目的是加大物體本身的碰撞體 結(jié)果順利的實現(xiàn)了
下面是完整
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Shubiaoxuanting : MonoBehaviour{
bool ischanger; //上移動 0為未上移 1為上移
int move_up=0;
void Start () { ischanger = false; //擴大碰撞體的尺寸 方便檢測鼠標懸停
this.GetComponent<BoxCollider> ().size = new Vector3 (1.5f, 1.5f, 1.5f);
//給麻將初始狀態(tài)的位置 this.transform.position = new Vector3
(this.transform.position.x, 0, this.transform.position.z); }
//鼠標在物體上面引起的動作 void OnMouseOver(){ ischanger = true;
this.transform.position = new Vector3 (this.transform.position.x, 0.2f,
this.transform.position.z); }
// void OnMouseEnter(){
// ischanger = true;
// move_up = 1;
// Debug.Log ("3333333");
// // }
//鼠標不再上面引起的動作
void OnMouseExit(){
ischanger = false;
this.transform.position = new Vector3 (this.transform.position.x, 0, this.transform.position.z);
} /鼠標按下
/鼠標按下
void OnMouseDown(){
}
}
//鼠標松開
//鼠標松開
void OnMousePut(){}
void OnMousePut(){}
void Update () {
// if (ischanger){
//Debug.Log ("33333");
//this.transform.position = new Vector3 (this.transform.position.x, 0.2f, this.transform.position.z)
} else {
// this.transform.position = new Vector3 (this.transform.position.x, 0, this.transform.position.z);
// }}}
補充:Unity UGUI Button鼠標的懸停事件(利用重寫unity中的button來實現(xiàn))
我就廢話不多說了,大家還是直接看代碼吧~
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class LearnButton : Button
{
///
/// 配合Unity的其他方法使用,就能達到你想要的效果!這里只是拋磚引玉,大家有更好的方法歡迎跟我交流!
///
///
///
protected override void DoStateTransition(SelectionState state, bool instant)
{
base.DoStateTransition(state, instant);
switch (state)
{
case SelectionState.Disabled:
break;
case SelectionState.Highlighted:
Debug.Log("鼠標移到button上!");
break;
case SelectionState.Normal:
Debug.Log("鼠標離開Button!");
break;
case SelectionState.Pressed:
break;
default:
break;
}
}
}
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章
Winform控件優(yōu)化Paint事件實現(xiàn)圓角組件及提取繪制圓角的方法
這篇文章主要介紹了Winform控件優(yōu)化Paint事件實現(xiàn)圓角組件及提取繪制圓角的方法,Windows?11下所有控件已經(jīng)默認采用圓角,其效果更好、相對有著更好的優(yōu)化,只是這是默認的行為,無法進一步自定義,更多詳情需要的小伙伴可以參考下面文章內(nèi)容2022-08-08
同時兼容JS和C#的RSA加密解密算法詳解(對web提交的數(shù)據(jù)加密傳輸)
這篇文章主要給大家介紹了關于同時兼容JS和C#的RSA加密解密算法,通過該算法可以對web提交的數(shù)據(jù)進行加密傳輸,文中通過圖文及示例代碼介紹的非常詳細,需要的朋友們可以參考借鑒,下面來一起看看吧。2017-07-07
Winform學生信息管理系統(tǒng)各子窗體剖析(3)
這篇文章主要針對Winform學生信息管理系統(tǒng)各子窗體進行剖析,感興趣的小伙伴們可以參考一下2016-05-05
C#使用Datatable導入sqlserver數(shù)據(jù)庫的三種方法
本文主要介紹了C#使用Datatable導入sqlserver數(shù)據(jù)庫的三種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-08-08
C#?委托與?Lambda?表達式轉(zhuǎn)換機制及弱事件模式下的生命周期詳解
本文介紹了C#委托和Lambda表達式的工作原理,包括委托的內(nèi)部結(jié)構(gòu)、Lambda表達式的轉(zhuǎn)換機制以及弱事件模式下的生命周期管理,感興趣的朋友一起看看吧2025-02-02
支持多類型數(shù)據(jù)庫的c#數(shù)據(jù)庫模型示例
本文為大家提供一個c#數(shù)據(jù)庫訪問模型,支持多類型數(shù)據(jù)庫,簡單抽取數(shù)據(jù)庫訪問函數(shù),大家參考使用吧2014-01-01

