您好,登錄后才能下訂單哦!
我們在用unity3d開發自己的游戲的時候,自定義游戲中的鼠標也是經常要用到的,那我就得學學,其實原理很簡單,先將鼠標給隱藏,然后在鼠標的位置上畫出一個自定義的鼠標貼圖,這樣看起來就像一個自定義的鼠標。當然我這里利用的是跨平臺方案,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.顯示自定義鼠標
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); }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。