最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity EasyTouch搖桿插件使用示例詳解

 更新時(shí)間:2021年10月22日 08:23:10   作者:小紫蘇xw  
這篇文章主要介紹了Unity EasyTouch搖桿插件使用,這套插件還支持雙指縮放,滑動(dòng),手指畫圈,點(diǎn)擊,多指觸碰,拖拽等,通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

EasyTouch搖桿插件使用,先給大家展示下效果圖:

Demo展示

雙指縮放在電腦端無法掩飾,豎屏將就看看吧;

插件名叫EasyTouch,有需要給我留言,不想開倉庫傳了;

創(chuàng)建搖桿點(diǎn)這里:

初始化

On_JoystickMove這個(gè)回調(diào)是用來控制移動(dòng)的;分兩個(gè)方向,x和y軸;

void OnEnable()
{    
    EasyJoystick.On_JoystickMove += OnJoystickMove;
}

private void OnDisable()
{
    EasyJoystick.On_JoystickMove -= OnJoystickMove;
}

private void OnDestroy()
{
    EasyJoystick.On_JoystickMove -= OnJoystickMove;
}

自定義On_JoystickMove

我的搖桿物體名稱叫做MoveControl;

void OnJoystickMove(MovingJoystick move)
{
    if (move.joystickName != "MoveControl") 
    {
        return;
    }

    float PositionX = move.joystickAxis.x; //獲取搖桿偏移搖桿中心的x坐標(biāo)
    float PositionY = move.joystickAxis.y; //獲取搖桿偏移搖桿中心的y坐標(biāo)

    Vector2 value = move.joystickValue;
    if (PositionY != 0 || PositionX != 0)
    {
        //設(shè)置控制角色或物體方塊的朝向(當(dāng)前坐標(biāo)+搖桿偏移量)
        //transform.LookAt(new Vector3(transform.position.x + PositionX, transform.position.y,transform.position.z + PositionY));
        //移動(dòng)角色或物體的位置(按其所朝向的位置移動(dòng))
        Vector3 dir = new Vector3(PositionX, PositionY, 0);
        
        transform.Translate(dir * Time.deltaTime * speed);
    }
}

這兩個(gè)物體控制搖桿,EasyTouch一定不能刪除;

手勢功能

這套插件還支持雙指縮放,滑動(dòng),手指畫圈,點(diǎn)擊,多指觸碰,拖拽等;

具體api看注釋:

public class Zoom : MonoBehaviour
{
    bool isStart = false;
    public Button BtnReset;
    public Button BtnLoadScene;
    public Text log;
    void OnEnable() {  
        EasyTouch.On_Swipe += On_Swipe;  
        EasyTouch.On_Drag += On_Drag;  
        EasyTouch.On_Swipe2Fingers += On_Swipe2Fingers;  
        EasyTouch.On_PinchEnd += On_PinchEnd;
        EasyTouch.On_PinchIn += On_PinchIn;
        EasyTouch.On_PinchOut += On_PinchOut;
        BtnReset.onClick.AddListener(ResetScene);  
        BtnLoadScene.onClick.AddListener(OnLoadScene);
    }  
 
    void OnDisable() {  
        EasyTouch.On_Swipe -= On_Swipe;  
        EasyTouch.On_Drag -= On_Drag;  
        EasyTouch.On_Swipe2Fingers -= On_Swipe2Fingers;  
        EasyTouch.On_PinchEnd -= On_PinchEnd;  
        EasyTouch.On_PinchIn -= On_PinchIn;
        EasyTouch.On_PinchOut -= On_PinchOut;
        BtnReset.onClick.RemoveListener(ResetScene);  
    }  
 
    void OnDestroy() {  
        EasyTouch.On_Swipe -= On_Swipe;  
        EasyTouch.On_Drag -= On_Drag;  
        EasyTouch.On_Swipe2Fingers -= On_Swipe2Fingers;  
        EasyTouch.On_PinchEnd -= On_PinchEnd;  
        EasyTouch.On_PinchIn -= On_PinchIn;
        EasyTouch.On_PinchOut -= On_PinchOut;
        BtnReset.onClick.RemoveListener(ResetScene);  
    }  
 
    /// <summary>  
    /// 重置cube和相機(jī)  
    /// </summary>  
    void ResetScene() {  
        transform.position = Vector3.zero;  
        transform.rotation = Quaternion.Euler(Vector3.zero);  
        Camera.main.transform.position = new Vector3(0, 0, -10);  
    }  
 
    /// <summary>  
    /// 滑動(dòng)使cube旋轉(zhuǎn)  
    /// </summary>  
    /// <param name="ges"></param>  
    void On_Swipe(Gesture ges) {  
        Vector3 vec = new Vector3(ges.deltaPosition.y, ges.deltaPosition.x, 0);  
        transform.Rotate(vec ,Space.World);  
        log.text = "滑動(dòng)使cube旋轉(zhuǎn)";
    }  
 
    /// <summary>  
    /// 拖拽移動(dòng)cube  
    /// </summary>  
    /// <param name="ges"></param>  
    void On_Drag(Gesture ges) {  
        if (ges.pickObject == gameObject) {  
            transform.position = ges.GetTouchToWordlPoint(10);//相機(jī)z=-10 cube 0  
            log.text = "拖拽移動(dòng)cube";
        }  
    }  
 
    /// <summary>  
    /// 雙指滑動(dòng) 平面移動(dòng)相機(jī)  
    /// </summary>  
    /// <param name="ges"></param>  
    void On_Swipe2Fingers(Gesture ges) 
    {  
        Camera.main.transform.Translate(new Vector3(-ges.deltaPosition.x*Time.deltaTime*25,
            -ges.deltaPosition.y*Time.deltaTime*25, 0));  
        log.text = "雙指滑動(dòng)移動(dòng)相機(jī)";
    }

    /// <summary>  
    /// 拉近拉遠(yuǎn)相機(jī)  
    /// </summary>  
    /// <param name="ges"></param>  
    private void On_PinchIn(Gesture gesture){
 
        if (gesture.pickObject == gameObject){
             
            float zoom = Time.deltaTime * gesture.deltaPinch;
            isStart = true;
            Vector3 scale = transform.localScale ;
            transform.localScale = new Vector3( scale.x - zoom, scale.y -zoom, scale.z-zoom);
        }  
    }
 
    private void On_PinchOut(Gesture gesture){
        if (gesture.pickObject == gameObject){
            float zoom = Time.deltaTime * gesture.deltaPinch;
            isStart = true;
            Vector3  scale = transform.localScale ;
            transform.localScale = new Vector3( scale.x + zoom, scale.y +zoom,scale.z+zoom);
 
        }
    }
    private void On_PinchEnd(Gesture gesture){
        if(isStart ){
            if (gesture.pickObject == gameObject){
                print ("End");
            }
        }
    }  

    void OnLoadScene()
    {
        SceneManager.LoadScene("TestJoyStick");
    }
}

到此這篇關(guān)于Unity EasyTouch搖桿插件使用的文章就介紹到這了,更多相關(guān)Unity EasyTouch搖桿插件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#把寫好的類編譯成dll文件的操作方法

    C#把寫好的類編譯成dll文件的操作方法

    在C#中,DLL文件是一種可重用的代碼庫,它包含了已編譯的函數(shù)、類、數(shù)據(jù)和資源,DLL文件可以被多個(gè)應(yīng)用程序共享和重用,這樣可以提高代碼的復(fù)用性和可維護(hù)性,所以本文給大家介紹了C#如何把寫好的類編譯成dll文件,需要的朋友可以參考下
    2024-09-09
  • C#常見的幾種集合 ArrayList,Hashtable,List<T>,Dictionary<K,V> 遍歷方法對比

    C#常見的幾種集合 ArrayList,Hashtable,List<T>,Dictionary<K,

    本文對C#中常見集合ArrayList,Hashtable,List<T>,Dictionary<K,V>遍歷方法做了簡單的對比和介紹,有需要的朋友可以參考一下。
    2016-03-03
  • C#可用于登錄驗(yàn)證碼的四位隨機(jī)數(shù)生成方法

    C#可用于登錄驗(yàn)證碼的四位隨機(jī)數(shù)生成方法

    這篇文章主要介紹了C#可用于登錄驗(yàn)證碼的四位隨機(jī)數(shù)生成方法,提供了兩種生成四位隨機(jī)數(shù)的方法供大家參考,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-12-12
  • C#實(shí)現(xiàn)將javascript文件編譯成dll文件的方法

    C#實(shí)現(xiàn)將javascript文件編譯成dll文件的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)將javascript文件編譯成dll文件的方法,涉及C#編譯生成dll動(dòng)態(tài)鏈接庫文件的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • c#發(fā)送請求訪問外部接口的實(shí)例

    c#發(fā)送請求訪問外部接口的實(shí)例

    這篇文章主要介紹了c#發(fā)送請求訪問外部接口的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • C#七大經(jīng)典排序算法系列(上)

    C#七大經(jīng)典排序算法系列(上)

    這篇文章主要為大家詳細(xì)介紹了C#七大經(jīng)典排序算法系列上篇,冒泡排序,快速排序等,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • C#并行編程之PLINQ(并行LINQ)

    C#并行編程之PLINQ(并行LINQ)

    這篇文章介紹了C#并行編程之PLINQ(并行LINQ),文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C# byte轉(zhuǎn)為有符號整數(shù)實(shí)例

    C# byte轉(zhuǎn)為有符號整數(shù)實(shí)例

    這篇文章主要介紹了C# byte轉(zhuǎn)為有符號整數(shù)實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • C#實(shí)現(xiàn)簡易點(diǎn)餐功能

    C#實(shí)現(xiàn)簡易點(diǎn)餐功能

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡易點(diǎn)餐功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C#多線程之Thread類詳解

    C#多線程之Thread類詳解

    這篇文章主要為大家詳細(xì)介紹了C#多線程之Thread類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評論

双峰县| 临邑县| 井冈山市| 嘉定区| 商丘市| 建始县| 鸡泽县| 琼中| 灵武市| 柯坪县| 盐亭县| 郸城县| 北安市| 明水县| 原平市| 军事| 弥渡县| 拉孜县| 岑巩县| 隆子县| 昌乐县| 曲沃县| 巧家县| 安达市| 合山市| 崇义县| 叶城县| 界首市| 贞丰县| 南乐县| 临洮县| 金寨县| 陆川县| 正宁县| 正蓝旗| 冕宁县| 怀来县| 上杭县| 象州县| 噶尔县| 武安市|