Unity3d使用UGUI開發原生虛擬搖桿
在Unity3d中開發虛擬搖桿方式有比較多,可以使用EasyTouch、FairyGUI等外掛來開發。本文給大家介紹使用Unity3d的原生UGUI來開發出自己的虛擬搖桿,這樣可以減少遊戲資源包的大小。
先展示下效果圖:
現在開發我們的開發
建立一個Image1,並且在Image1建立一個子物件Image2
在Image1中掛載一個自定義指令碼,這裡我命名為Joystick
指令碼程式碼如下
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class Joystick : ScrollRect { private float mRadius; public System.Action<RectTransform> JoystickMoveHandle; public System.Action<RectTransform> JoystickEndHandle; protected override void Start() { mRadius = this.GetComponent<RectTransform>().sizeDelta.x * 0.5f; this.content.gameObject.SetActive(false); } public override void OnDrag(PointerEventData eventData) { base.OnDrag(eventData); this.content.gameObject.SetActive(true); //虛擬搖桿移動 var contentPostion = this.content.anchoredPosition; if (contentPostion.magnitude > mRadius) { contentPostion = contentPostion.normalized * mRadius; SetContentAnchoredPosition(contentPostion); } //旋轉 if (content.anchoredPosition.y != 0) { content.eulerAngles = new Vector3(0, 0, Vector3.Angle(Vector3.right, content.anchoredPosition) * content.anchoredPosition.y / Mathf.Abs(content.anchoredPosition.y) - 90); } } private void FixedUpdate() { if (this.content.gameObject.activeInHierarchy) { if (JoystickMoveHandle != null) { JoystickMoveHandle(this.content); } } } public override void OnEndDrag(PointerEventData eventData) { base.OnEndDrag(eventData); this.content.gameObject.SetActive(false); if (JoystickEndHandle != null) { JoystickEndHandle(this.content); } } }
然後將Image2拖動到content屬性變數裡
這樣就可以移動並且拖動我們的虛擬搖桿了
接下來要讓我們的遊戲主角跟隨我們的搖桿移動而移動
在我們的主角兒掛載一個自定義指令碼
在Start方法裡新增程式碼:
mJoystick = GameObject.Find("Joystick").GetComponent<Joystick>();
mJoystick.JoystickMoveHandle = JoystickHandle;
mJoystick.JoystickEndHandle = JoystickEndHandle;
其中JoystickHandle方法程式碼為:
transform.eulerAngles = new Vector3(0, -content.eulerAngles.z, 0);
transform.Translate(Vector3.forward * Time.deltaTime * mMoveSpeed);
接下來就可以執行我們的遊戲,觀察主角移動旋轉位置。
好了,本文就介紹到這裡,如果有問題可以在QQ上聯絡我哦!:352952839
相關推薦
Unity3d使用UGUI開發原生虛擬搖桿
在Unity3d中開發虛擬搖桿方式有比較多,可以使用EasyTouch、FairyGUI等外掛來開發。本文給大家介紹使用Unity3d的原生UGUI來開發出自己的虛擬搖桿,這樣可以減少遊戲資源包的大小。先展示下效果圖:現在開發我們的開發建立一個Image1,並且在Image1
cocos2D 虛擬搖桿Joystick功能實現
皮膚 @implementation InputLayer - (id)init { if(self = [super init]) { winSize = [[CCDirector sharedDirector] winSize];
虛擬搖桿的修改
poi 如果 [1] 運行時 inpu tex div 這樣的 通過 上次的代碼運行時會有bug:報錯 ArgumentException: Index out of bounds. 即Input.GetTouch()函數進行了越界訪問。於是上網看了看,發現Touc
Unity3d 基於NGUI的虛擬搖桿實現
實現效果預覽 C#程式碼 實現: 使用NGUI新增虛擬搖桿背景和其子物體按鈕,為按鈕Attach boxcollider和ButtionScript。為按鈕新增如下指令碼: 注意:其中的靜態屬性可以在控制物體移動的程式碼中訪問用於控制。
Unity3d虛擬搖桿控制物體移動及旋轉
王者榮耀在現在看來可能已經成為不少人每天都會開啟一款軟體,角色的控制及其操作方式簡單,使其短時間內獲得了大量的玩家喜愛和追捧。 可以很明顯的看到王者榮耀的操作方式就是虛擬搖桿,可以控制人物的的移動,及其旋轉,或者是控制技能的釋放方向。此篇部落格就unity中如何實
Unity3d 控制角色移動 鍵盤按鍵與虛擬搖桿
先上角色移動指令碼 using UnityEngine; using System.Collections; public class PlayerMove:MonoBehaviour
unity3d 虛擬搖桿 ugui
網上找了好多都嫌麻煩,谷歌了一下,完美解決。 需要先建立 Canvas,如下: 程式碼拖拽到 backImage裡: JoyStick.cs using System.Collections; using System.Collec
Unity3d_UGUI虛擬搖桿(簡易)
之前的專案中有用虛擬搖桿來操縱角色移動,但是之前使用的是EasyTouch,屬於NGUI下的一個外掛,但是本身專案是基於UGUI的,覺得這樣摻雜在一起有些不倫不類,就自己用UGUI做了一個簡易的虛擬搖桿(可以實現給角色移動指令碼發出搖桿的偏移引數類似於Easy
android遊戲引擎andengine學習系列三:繪製遊戲虛擬搖桿
如何高效的學習,這才是我們最值得去學習的。 andengine中繪製虛擬遊戲搖桿非常簡單,只需要實現AnalogOnScreenControl模擬搖桿類,在設定一些屬性即可。先看效果圖: 左邊的搖桿是控制精靈上下左右移動,右邊的搖桿空值精靈的旋轉。程式碼結構跟and
unity虛擬搖桿的實現
在遊戲中,虛擬搖桿是很常見的,這裡我主要是製作第一人稱的虛擬搖桿,第三人稱的實現原理也是類似的。廢話不說,直接說實現方式。 最終效果圖如下: 實現方式分為3步: 1:在canvas下建立一個空的子物體,名稱為yangan或者你想要的其他名字,這裡為ya
Unity3D學習筆記(二十三):事件接口、虛擬搖桿、層級管理和背包系統
ram veh ces 跟隨鼠標 style 組件 屏幕 向上 grid 事件接口 IDragHandler(常用):鼠標按下拖動時執行(只要鼠標在拖動就一直執行) IDropHandler:對象拖動結束時,如果鼠標在物體的範圍內,執行一次(依賴於IDragHandler存
QT 模仿Android遊戲中虛擬搖桿(3)讓圓隨著角度移動
接著上一篇講起,我們需要在滑鼠離開圓的範圍的時候,讓圓跟著滑鼠與圓心的角度移動,那麼我們來看看我們的已知量是什麼: 1、圓心座標 2、圓的半徑 3、當前滑鼠的座標 運用一下我們的中學知識,根據(1、3
Unity_虛擬搖桿的實現_065
設定搖桿的背景圖片的錨點如下: 設定搖桿的錨點為背景圖片的中心點。 並給搖桿繫結指令碼如下: using UnityEngine; using UnityEngine.EventSystems
UGUI 虛擬搖桿的實現
建2張 image,大小自己看著辦: 第一步:將上一次拖拽實現的程式碼全部複製過來.將指令碼放在較小的正方形 image using UnityEngine; using System.Collections; using UnityEngine.UI;
自定義虛擬搖桿元件讓你一勞永逸
最近在研究虛擬搖桿實現方式的時候,發現網上的教程的實現方式可移植性並不是特別好,於是我決定自己實現一個虛擬搖桿元件,儲存到自己的元件庫,方便以後用到的時候直接使用(關注公眾號後臺回覆「虛擬搖桿元件」可獲取該元件),下面正文開始。 實現思路: 為了實現高度可移植,定義了兩個節點屬性,用於繫結場景和
SpriteKit手機遊戲搖桿JoyStick的使用 -- by iFIERO遊戲開發教程
tick eat self. idm rac child lar 重要 sce ### 工欲善其事,必先利其器 有時候學習如何應用第三方庫是非常重要的,因為我們不用再自己重復造輪子,在這裏,我們就把原先利用重力感應來操控飛機改為用遊戲搖桿joystick來操控,具體的
CC65 開發FC/NES 遊戲(三)使用搖桿
CC65在我的文章(一)中可以獲取到 或者直接去github下載cc65 這次的程式碼來自cc65的samples目錄下的hello.c 並做了修改和註釋 通過檢視原始碼可以看到裡面支援的機器型別 #if defined(__NES__) || defined(__PCE__) || defined
關於Unity5.5中自帶搖桿與車輪碰撞器的使用
cti 添加組件 class 碰撞器 call 如果 blog ext 面板 在創建好項目目錄的基礎上 導入一個第三方的資源包,在Project面板裏面 右鍵---->Import Package---->Custom Package---->easy_t
關於Unity中搖桿的操作
新的 anim forward easy 使用 -s war 搖桿 遊戲 之前在解決搖桿控制角色的時候使用的是RPG遊戲中主角的運動方式,有八個方向,最近找到一個新的方法,可以比較流暢地控制角色各個方向的移動 步驟 1.Easy Touch插件,角色控制器組件 2.在控
安全的虛擬幣場外交易平臺開發,虛擬幣系統開發!!!
ima ESS 相對 cto roc 系統 消息 在線交易 可能 近來新出的虛擬幣的交易模式:場外交易,不在交易所內進行交易而在場外市場進行交易的活動,又稱“店頭交易”或“櫃臺交易”!這種對場外交易和在線交易的理解,可能意味著虛擬幣在中國的使用和交易將在未來發展得很好。這是