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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

unity虚拟摇杆控制的实现

發(fā)布時間:2023/12/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 unity虚拟摇杆控制的实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、前言

手機游戲,經(jīng)常會用到搖桿來控制角色,本文記錄了如何在unity中用比較簡單的方法制作搖桿,并且實現(xiàn)搖桿控制角色左右移動。

二、需要繼承的類

  • ScrollRect(滾動類,一般用于實現(xiàn)UI的拖拽滾動,包含在UnityEngine.UI中)
  • IPointerDownHandler(指針按下類,實現(xiàn)接口檢測指針是否按下,包含在UnityEngine.EventSystems中)
  • IPointerUpHandler(指針抬起類,實現(xiàn)接口檢測指針是否抬起,需要和IPointerDownHandler的接口一起實現(xiàn)才會發(fā)揮作用,包含在UnityEngine.EventSystems中)

三、虛擬搖桿的制作

需要圖片:

  • 虛擬搖桿的背景圖
  • 搖桿圖

在canvas中新建一個image對象,把虛擬搖桿的背景圖放上去,在該對象中新建一個子image作為搖桿,把搖桿圖放上去,調(diào)整好大小和位置即可。

?四、搖桿控制角色移動

新建一個腳本Stick,輸入以下代碼,掛載到搖桿背景上,并把搖桿對象拖到腳本的content處。

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class Stick : ScrollRect,IPointerUpHandler,IPointerDownHandler {protected float mRadius = 0f;//搖桿范圍半徑protected override void Start(){base.Start();//原start方法//計算搖桿范圍半徑mRadius = (transform as RectTransform).sizeDelta.x * 0.45f;}public override void OnDrag(PointerEventData eventData){base.OnDrag(eventData);//原onDrag方法//搖桿位置var contentPosition = content.anchoredPosition;if (contentPosition.x > 0){//在此寫控制角色右移邏輯}else if(contentPosition.x < 0){//在此寫控制角色左移邏輯}else{//在此寫控制角色停止移動邏輯}//如果搖桿位置超出范圍,則限制在范圍內(nèi)if(contentPosition.magnitude > mRadius){contentPosition = contentPosition.normalized * mRadius;SetContentAnchoredPosition(contentPosition);}}public void OnPointerDown(PointerEventData eventData){//這個接口需要實現(xiàn)用來檢測指針是否點擊,什么都不寫也行,有就ok}public void OnPointerUp(PointerEventData eventData){//在此寫控制角色停止移動邏輯} }

?

總結(jié)

以上是生活随笔為你收集整理的unity虚拟摇杆控制的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。