我們在用unity3d開發(fā)自己的游戲的時候,自定義游戲中的鼠標也是經常要用到的,那我就得學學,其實原理很簡單,先將鼠標給隱藏,然后在鼠標的位置上畫出一個自定義的鼠標貼圖,這樣看起來就像一個自定義的鼠標。當然我這里利用的是跨平臺方案,Unity的GUI效率不高,如果我們要用特定的某個平臺的自定義鼠標,那就去用特定的接口函數(shù),這樣效率會高一點。這里我寫的就是一個跨平臺方案,一種通用的方法。
舉例:
如果是windows平臺的話,我們如果要隱藏鼠標就用SetCursor()這個方法,
注意:
1.GUI坐標系的原點是在左上角,而屏幕坐標系采用的是一種OpenGL坐標系原點是在左下角,所以這就存在一個坐標轉換的問題!
2.update()和FixedUpdate()的區(qū)別:
Update() 和 FixedUpdate()在游戲中都會在更新的時候自動循環(huán)調用。
但是Update是在每次渲染新的一幀的時候才會調用,也就是說,這個函數(shù)的更新頻率和設備的性能有關以及被渲染的物體(可以認為是三角形的數(shù)量)。在性能好的機器上可能fps 30,差的可能小些。這會導致同一個游戲在不同的機器上效果不一致,有的快有的慢。因為Update的執(zhí)行間隔不一樣了。
而FixedUpdate,是在固定的時間間隔執(zhí)行,不受游戲幀率的影響。有點想Tick。所以處理Rigidbody的時候最好用FixedUpdate。
PS:FixedUpdate的時間間隔可以在項目設置中更改,Edit->Project Setting->time 找到Fixed timestep。就可以修改了。
操作:
1.隱藏鼠標是:Screen.showCursor = false;
2.顯示自定義鼠標
public Texture CursorTexture; void OnGUI() { Vector3 mousePos = Input.mousePosition; //因為GUI坐標系原點是左上角,而屏幕坐標系原點是在左下角,所以要轉換 GUI.DrawTexture(new Rect(mousePos.x-CursorTexture.width/2,Screen.height - mousePos.y-CursorTexture.height/2,CursorTexture.width,CursorTexture.height),CursorTexture); }
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站欄目:[Unity3d]自定義鼠標-創(chuàng)新互聯(lián)
鏈接地址:http://www.ekvhdxd.cn/article16/dscodg.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、企業(yè)網站制作、網站改版、軟件開發(fā)、面包屑導航、品牌網站制作
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容