日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[Unity3d]定义自己的鼠标

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Unity3d]定义自己的鼠标 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[Unity3d]自己定義鼠標

我們在用unity3d開發自己的游戲的時候。自己定義游戲中的鼠標也是常常要用到的。那我就得學學。事實上原理非常easy,先將鼠標給隱藏,然后在鼠標的位置上畫出一個自己定義的鼠標貼圖,這樣看起來就像一個自己定義的鼠標。當然我這里利用的是跨平臺方案,Unity的GUI效率不高。假設我們要用特定的某個平臺的自己定義鼠標,那就去用特定的接口函數,這樣效率會高一點。這里我寫的就是一個跨平臺方案,一種通用的方法。

舉例:

假設是windows平臺的話,我們假設要隱藏鼠標就用SetCursor()這種方法,

注意:

1.GUI坐標系的原點是在左上角,而屏幕坐標系採用的是一種OpenGL坐標系原點是在左下角,所以這就存在一個坐標轉換的問題!

2.update()和FixedUpdate()的差別:

Update() 和 FixedUpdate()在游戲中都會在更新的時候自己主動循環調用。

可是Update是在每次渲染新的一幀的時候才會調用,也就是說,這個函數的更新頻率和設備的性能有關以及被渲染的物體(能夠覺得是三角形的數量)。在性能好的機器上可能fps 30,差的可能小些。

這會導致同一個游戲在不同的機器上效果不一致,有的快有的慢。由于Update的運行間隔不一樣了。

而FixedUpdate,是在固定的時間間隔運行。不受游戲幀率的影響。

有點想Tick。

所以處理Rigidbody的時候最好用FixedUpdate。


PS:FixedUpdate的時間間隔能夠在項目設置中更改。Edit->Project Setting->time ?找到Fixed timestep。就能夠改動了。


操作:

1.隱藏鼠標是:Screen.showCursor = false;

2.顯示自己定義鼠標

[csharp]?view plaincopyprint?
  • 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);??
  • }??

  • 效果:

    總結

    以上是生活随笔為你收集整理的[Unity3d]定义自己的鼠标的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。