Unity實(shí)現(xiàn)虛擬搖桿效果
更新時(shí)間:2020年04月14日 14:25:52 作者:糟糕點(diǎn)師
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)虛擬搖桿效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了Unity實(shí)現(xiàn)虛擬搖桿效果的具體代碼,供大家參考,具體內(nèi)容如下
首先添加兩者圖片
從左到右分別是Back和Front
將Front放到Back中心
在Front身上添加腳本
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems;//導(dǎo)入命名空間 public class JoyStick : MonoBehaviour,IPointerDownHandler,IPointerUpHandler {//實(shí)現(xiàn)接口 private bool isTouched = false;//標(biāo)志位,用于標(biāo)示值是否拖拽按鈕 private static float h = 0; private static float v = 0;//這兩者用于表示水平(豎直)方向按鈕移動的值,相當(dāng)于通過Input.GetAxis("Horizontal");Input.GetAxis("Vertical"); [SerializeField] private Vector2 joystickPivot;//按鈕中心位置在世界坐標(biāo)中的值 [SerializeField] private float radius;//按鈕的半徑(決定了按鈕的活動范圍) // Update is called once per frame void Update () { if (isTouched) { Vector2 mouPos = Input.mousePosition; mouPos -= joystickPivot;//將鼠標(biāo)位置轉(zhuǎn)換為本地坐標(biāo) if (Vector2.Distance(mouPos,Vector2.zero)>=radius)//如果鼠標(biāo)移動超出范圍,將圖片放到邊緣 { mouPos = mouPos.normalized*radius; } transform.localPosition = mouPos; h = mouPos.x/radius; v = mouPos.y/radius; } } public void OnPointerDown(PointerEventData eventData) { isTouched = true; } public void OnPointerUp(PointerEventData eventData) { isTouched = false; h = 0; v = 0;//不拖拽時(shí)二者為0 transform.localPosition = Vector3.zero;//讓按鈕返回中心魏智 } }
對于代碼中的h,v就是我們操作遙感時(shí)水平(豎直)方向獲取的值(0-1),其他腳本獲取這兩個靜態(tài)變量的值就可以實(shí)現(xiàn)對自身物體的移動了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Unity虛擬搖桿的實(shí)現(xiàn)方法
- unity實(shí)現(xiàn)虛擬搖桿控制Virtual Joystick
- unity實(shí)現(xiàn)手游虛擬搖桿
- Unity3D使用UGUI開發(fā)原生虛擬搖桿
- Unity實(shí)現(xiàn)簡單虛擬搖桿
- unity實(shí)現(xiàn)手機(jī)端搖桿控制人物移動
- Unity實(shí)現(xiàn)簡單的虛擬搖桿
- Unity3D基于UGUI實(shí)現(xiàn)虛擬搖桿
- Unity實(shí)現(xiàn)簡單虛擬搖桿
- Unity實(shí)現(xiàn)虛擬搖桿
- Unity UGUI通過搖桿控制角色移動
- Unity使用ScrollRect制作搖桿
相關(guān)文章
Unity Shader實(shí)現(xiàn)水波紋效果
這篇文章主要為大家詳細(xì)介紹了Unity Shader實(shí)現(xiàn)水波紋效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05C#調(diào)用C動態(tài)鏈接庫的實(shí)現(xiàn)
動態(tài)鏈接庫是不能直接執(zhí)行的,也不能接收消息,它只是一個獨(dú)立的文件,本文主要介紹了C#調(diào)用C動態(tài)鏈接庫的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01