小編這次要給大家分享的是Unity如何使用ScrollRect制作搖桿,文章內(nèi)容豐富,感興趣的小伙伴可以來(lái)了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)的關(guān)注點(diǎn)不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒(méi)有做好網(wǎng)站,給成都創(chuàng)新互聯(lián)公司一個(gè)展示的機(jī)會(huì)來(lái)證明自己,這并不會(huì)花費(fèi)您太多時(shí)間,或許會(huì)給您帶來(lái)新的靈感和驚喜。面向用戶友好,注重用戶體驗(yàn),一切以用戶為中心。一. 前言
游戲開(kāi)發(fā)中,搖桿功能是很常見(jiàn)的,Unity的UGUI提供了ScrollRect組件,非常適合用來(lái)制作搖桿,效果如下:
二. 實(shí)現(xiàn)
1. 制作UI
如下,創(chuàng)建Rocker節(jié)點(diǎn)和center節(jié)點(diǎn),分別為搖桿的背景圖和搖桿的手柄圖。
Rocker節(jié)點(diǎn)掛上Rocker腳本(代碼見(jiàn)文章最后),并賦值Content對(duì)象。
設(shè)置MovementType為Elastic。
2. 運(yùn)行Unity進(jìn)行測(cè)試
運(yùn)行Unity即可測(cè)試搖桿功能。
3. Rocker腳本代碼
using UnityEngine; using UnityEngine.UI; public class Rocker: ScrollRect { protected float mRadius = 0f; protected override void Start() { base.Start(); //計(jì)算搖桿塊的半徑 mRadius = (transform as RectTransform).sizeDelta.x * 0.5f; } public override void OnDrag(UnityEngine.EventSystems.PointerEventData eventData) { base.OnDrag(eventData); var contentPostion = this.content.anchoredPosition; if (contentPostion.magnitude > mRadius) { contentPostion = contentPostion.normalized * mRadius; SetContentAnchoredPosition(contentPostion); } Debug.Log(contentPostion); } }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。