国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

Unity3D實現虛擬按鈕控制人物移動效果

2020-01-24 00:09:24
字體:
來源:轉載
供稿:網友

本文為大家分享了Unity3D實現虛擬按鈕控制人物移動的具體代碼,供大家參考,具體內容如下

創建Image的UI組件,在Image下新建一個Button按鈕。在Image 和Button上拖進Sprite圖片

在Button按鈕上掛載該腳本

using System.Collections;using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI; public class MyJoystick : MonoBehaviour, IPointerDownHandler, IPointerUpHandler {  public Canvas canvas; public static float h;  //h和v的值傳回給player腳本,使得物體移動 public static float v;  private bool isPress = false; //Button按鈕是否按下 private Vector2 touchPos = Vector2.zero; //按下的位置  void Update() {  if (isPress)  {   RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform,    Input.mousePosition, null, out touchPos);    //根據Canvas和Image的Rectransform位置相減得出   touchPos += new Vector2(427, 299);     float distance = Vector2.Distance(Vector2.zero, touchPos);    if (distance > 52) { //限制Button不能超出Image位置(兩者位置相減得出52)    touchPos = touchPos.normalized*52;    transform.localPosition = touchPos;   }   else   {    transform.localPosition = touchPos;   }    h = touchPos.x / 52;   v = touchPos.y / 52;  }  }  //鼠標按下時觸發 public void OnPointerDown(PointerEventData eventData) {  isPress = true; }  //鼠標按鍵彈起時觸發 public void OnPointerUp(PointerEventData eventData) {  isPress = false;  transform.localPosition = Vector3.zero; } }

在玩家身上掛載控制玩家移動的腳本

using System.Collections;using System.Collections.Generic;using UnityEngine; public class PlayerMove : MonoBehaviour {  public float speed = 0.1f;  private float h = 0; private float v = 0;  void Update() {  //首先檢測虛擬按鍵有沒有移動,沒有再選擇鍵盤輸入  if (Mathf.Abs(MyJoystick.h) > 0 || Mathf.Abs(MyJoystick.v) > 0) {   h = MyJoystick.h;   v = MyJoystick.v;  }  else{   h = Input.GetAxis("Horizontal");   v = Input.GetAxis("Vertical");  }  //玩家位置移動  if (Mathf.Abs(h) > 0.1 || Mathf.Abs(v) > 0.1) {   Vector3 targetDir = new Vector3(h, 0, v);   transform.position += targetDir * speed;    transform.LookAt(transform.position+targetDir);  }   }}

這樣,就能通過按下Button來控制玩家移動了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 化州市| 临湘市| 荥阳市| 荔波县| 离岛区| 城步| 建瓯市| 澄江县| 广水市| 龙陵县| 宁河县| 天长市| 鲁山县| 隆昌县| 陆丰市| 武冈市| 昌邑市| 响水县| 兴业县| 荆州市| 东海县| 鲁甸县| 尖扎县| 图们市| 稻城县| 香格里拉县| 寿阳县| 通河县| 郑州市| 桂林市| 永平县| 姚安县| 连南| 民丰县| 宁安市| 延寿县| 涞水县| 汶川县| 宣化县| 任丘市| 巴林右旗|