馬上注冊,結交更多好友,享用更多功能,讓你輕松玩轉社區。
您需要 登錄 才可以下載或查看,沒有帳號?注冊帳號
x
本帖最后由 StarrySky 于 2016-12-30 00:07 編輯
注: 該搖桿使用unity3d自帶UI:Scroll View,制作的搖桿。感謝雨松MOMO的文章。

1、Resources文件夾下就是預制件。 自己需要用的時候, 拖拽到 Canvas 里面。
2、調整好S_V_Joy 的矩形位置與大小, S_V_Joy 的矩形大小就是搖桿的觸摸范圍, 然后再自己需要搖桿值的地方獲取搖桿。
3、兩個場景Demo 。 一個是關于如何用搖桿控制2D物體移動, 一個是關于如何用搖桿控制3D物體移動。
4、核心原理就是, 搖桿搖桿的坐標位置 來控制 自己想要控制的物體坐標位移。
5、On_Move(RectTransform rect_) 該方法是手動給YaoGan_所掛的物體的<ScrollRect>組件添加的當拖拽的時候要執行的方法。
搖桿怎么制作使用,unity3D虛擬搖桿怎么制作使用,unity3D安卓手機搖桿怎么制作使用 ,unity3D搖桿怎么控制物體。
免蠻牛B下載百度云項目包:
————————————————————————————
搖桿:
[C#] 純文本查看 復制代碼 using UnityEngine;
using System.Collections;
public class YaoGan_ : MonoBehaviour {
public RectTransform rectT_Viewport;//用來計算搖桿的半徑
public RectTransform rectT_Joy;//將獲取坐標作為搖桿鍵值
public int r_;
void Start()
{
r_ = (int)rectT_Viewport.sizeDelta.x / 2;
}
public void On_Move(RectTransform rect_)
{
if (rect_.anchoredPosition.magnitude > r_)
{//將搖桿限制在 半徑 r_ 以內
rect_.anchoredPosition = rect_.anchoredPosition.normalized * r_;
}
}
}
————————————————————————————
使用搖桿控制2D物體:
[C#] 純文本查看 復制代碼 using UnityEngine;
using System.Collections;
/// <summary>這個腳本寫的是如何用 搖桿來控制2D
/// </summary>
public class ShiYong_YaoGan : MonoBehaviour {
[SerializeField]private RectTransform rectPlayer;//拖拽賦值
[SerializeField]private YaoGan_ yaoGan_C;//拖拽賦值
// Update is called once per frame
void Update () {
rectPlayer.anchoredPosition += (yaoGan_C.rectT_Joy.anchoredPosition /10);//2D坐標 += 搖桿的坐標變化值/10
}
}
————————————————————————————
Unity3D使用搖桿控制3D物體:[C#] 純文本查看 復制代碼 using UnityEngine;
using System.Collections;
public class ShiYong3d : MonoBehaviour {
[SerializeField]
private YaoGan_ yaoGan_C;
// Use this for initialization
void Start () {
yaoGan_C = GameObject.Find("S_V_Joy").GetComponent<YaoGan_>();//給搖桿UI賦值
}
// Update is called once per frame
void Update () {
transform.Translate((yaoGan_C.rectT_Joy.anchoredPosition.x/10) *Time.deltaTime,0, (yaoGan_C.rectT_Joy.anchoredPosition.y/10) * Time.deltaTime);//搖桿控制3D物體的移動
}
}
|