1. 程式人生 > >手機遊戲選擇英雄時用單手指控制英雄旋轉,雙手指控制英雄大小縮放

手機遊戲選擇英雄時用單手指控制英雄旋轉,雙手指控制英雄大小縮放



using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Planeouch : MonoBehaviour
{
    //定義兩個(早的)觸控點
    Touch oldTouchOne;
    Touch oldTouchTwo;
    // Use this for initialization
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        switch (Input.touchCount)//判斷觸控點(螢幕上手指)數量
        {
            case 0:
                //沒有手指在螢幕上,return
                return;
            case 1:
                //一個手指在螢幕上,呼叫旋轉函式
                OnePoint();
                break;
            case 2:
                //兩個手指在螢幕上,呼叫放大縮小函式
                TwoPoint();
                break;
        }
    }
    /// <summary>
    /// 一個手指觸控,旋轉函式
    /// </summary>
    void OnePoint()
    {
        //獲取一個手指
        Touch touch = Input.GetTouch(0);
        //獲取這個手指的位置
        Vector2 v2 = touch.deltaPosition;
        //沿著y軸旋轉手指x的改變數
        transform.Rotate(Vector3.back* v2.x, Space.World);
    }
    /// <summary>
    /// 兩個手指觸控,放大縮小函式
    /// </summary>
    void TwoPoint()
    {
        //定義兩個新的觸控點
        Touch newTouchOne = Input.GetTouch(0);
        Touch newTouchTwo = Input.GetTouch(1);
        if (newTouchTwo.phase == TouchPhase.Began)//第二個手指放到螢幕上
        {
            //新的觸控點賦值給早先的觸控點
            oldTouchOne = newTouchOne;
            oldTouchTwo = newTouchTwo;
            return;
        }
        //早先的兩個觸控點(手指)之間的距離
        float oldDistance = Vector2.Distance(oldTouchOne.position, oldTouchTwo.position);
        //新的(兩個手指觸控位置改變後)的兩個觸控點(手指)之間的距離
        float newDistance = Vector2.Distance(newTouchOne.position, newTouchTwo.position);
        //兩個距離的差值/1000
        float offset = (newDistance - oldDistance) / 1000;//差值/1000
        //定義一個v3型別變數LocalScal,用來記錄物體的localScale
        Vector3 LocalScal = transform.localScale;
        //定義一個v3型別變數scal,它等於上一個的LocalScal變數加上兩個距離的差值
        Vector3 scal = new Vector3(LocalScal.x + offset, LocalScal.y + offset, LocalScal.z + offset);
        //如果物體的scal大於或等於0.25(也就是物體最小和縮小到0.25)
        if (scal.x >= 0.25f && scal.y >= 0.25f && scal.z >= 0.25f)
        {
            transform.localScale = scal;//把scal賦值給物體的localScale
        }
        //記錄新的觸控點為老的觸控點
        oldTouchOne = newTouchOne;
        oldTouchTwo = newTouchTwo;
    }
}

相關推薦

手機遊戲選擇英雄手指控制英雄旋轉手指控制英雄大小

 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Planeouch : MonoBehaviour {     //定義兩個(早的)

邏輯斯蒂迴歸能否解決非線性分類問題? 邏輯斯蒂迴歸提出時用來解決線型分類問題其分離面是一個線型超平面wx+b如果將這個超平面改成非線性的如x1^2+x2=0之類的非線性超平面來進行分類是否也可

邏輯迴歸的模型引入了sigmoid函式對映,是非線性模型,但本質上又是一個線性迴歸模型,因為除去sigmoid對映函式關係,其他的步驟,演算法都是線性迴歸的。可以說,邏輯迴歸,都是以線性迴歸為理論支援的。 這裡講到的線性,是說模型關於係數一定是線性形式的 加入sigmoid對

android多圖選擇器 圖片/視訊 選or多選以及視訊錄製。The is Android Image Selector。

PictureSelector 最近專案中用到多圖選擇上傳的需求,考慮到android機型眾多問題就自己花時間寫了一個,測試了大概60款機型,出現過一些問題也都一一修復了,基本上穩定了特分享出來,介面UI也是商用級的開發者不用在做太多修改了,介面高度自定義,可

unity控制相機實現旋轉——觸屏版(控制旋轉結束有慣性滑動控制根據手指間距離變化程度控制程度)

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour {     public float pinch

ImageView的Scaletype決定了圖片在View上顯示的樣子如進行何種比例的及顯示圖片的整體還是部分等等。 設定的方式包括: 1. 在layout xml中定義Android:s

ImageView的Scaletype決定了圖片在View上顯示時的樣子,如進行何種比例的縮放,及顯示圖片的整體還是部分,等等。 設定的方式包括: 1. 在layout xml中定義Android:scaleType="CENTER" 2. 或在程式碼中呼叫i

avl樹的插入(含旋轉旋轉

學習中寫的,所以註釋少,結構雜亂,難免有不足之處,望批評改正。如有需要筆者解釋的地方,請將問題發到筆者郵箱([email protected])。 public class AVLTreeClass <AnyType extends Comparable&l

unity3d:控制模型旋轉並停止控制一段時間後自轉

控制模型:移動端:單指旋轉,雙指縮放 PC:左鍵旋轉,滾輪縮放 using System.Collections; using System.Collections.Generic; using UnityEngine; using Framework.Ev

h5在使用雪碧圖做背景如何使圖示等比例大小

h5頁面在使用雪碧圖做背景時,其主要利用background-size屬性。首先,h5頁面的頭部要加上<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=

使用ionic開發遇到監聽手機返回按鈕的問題~

log key gin tlist dex oot als ack location 當時用的是ionic開發一個app,需求是,當按下手機的返回按鈕,在指定的頁面雙擊退出,而在其他頁面點擊一次返回到上個頁面; 其實用ionic自帶的服務就可以解決: //雙擊退出

UNITY5開發第一個手機遊戲(1)各種插件的準備

插件 amp nvt ef6 手機遊戲 開發 fan dnv arc GPUGEMS%E2%80%94%E2%80%94%E7%AC%AC23%E7%AB%A0%E5%A4%B4%E5%8F%91%E5%8A%A8%E7%94%BB%E5%92%8C%E6%B8%B2%E6

Unity之C#——例實現一個遊戲內部的音效控制器

       Unity之C#--用單例實現一個遊戲內部的音效控制器         在遊戲開發中,音效是很重要的一環,沒有音效的遊戲就沒有靈魂,所以實現聲音控制是很有必要的,同時,音效可能還會因玩家的性別不同,

元素同時繫結擊、擊事件並在選擇文字不觸發事件

首先如果同時繫結單擊和雙擊事件,預設會觸發單擊事件,雙擊無效,解決辦法是延遲單擊事件。但有時需要在元素上選擇文字,單擊時又會觸發單擊事件,而有時單擊事件會彈出對話方塊什麼的,希望選擇時不要觸發單擊、雙擊事件,程式碼如下: var clickTimer = null; $('

form表提交JavaScript跳轉action怎麼帶引數

<script type="text/javascript"> function selflog_show() { var num = document.getElementById("number").value;

Cocos2dx-- 手機遊戲不鎖屏

前言 記錄下cocos2dx手機遊戲時不自動鎖屏的相關配置。 IOS上遮蔽鎖屏配置 1,找到工程..\frameworks\runtime-src\proj.ios_mac\ios路徑下的AppController.mm這個檔案。 2,加入下面這

模擬器過檢測唯一免費方法!教你怎麼電腦玩手機遊戲

安卓模擬器怎麼免費防檢測?什麼模擬器不會被檢測?刺激戰場過模擬器檢測方法?測試了大部分可以叫出名字的安卓模擬器,玩絕地求生:刺激戰場的時候基本都會檢測安卓模擬器。網上的方法什麼偽裝成手機,什麼修改機型串號,什麼清除資料,要麼兩天就被騰訊和諧了需要重新弄超麻煩,要麼就是要收費(

手機遊戲引擎的選擇--學習遊戲開發Cocos2d-x和Unity3D/2D哪個前景更好?更易上手?

現在手遊火的一塌糊塗,引擎也是層出不窮除了引領3D市場的Unity3D,獨霸2D市場的Cocos2D-X之外,還有虛幻、Sphinx等,甚至搜狐也開發了國產的Genesis-3D引擎。 其它的不多說

C語言包含頭文件引號和尖括號的區別

目錄 bsp 尖括號 編譯器 搜索路徑 當前 配置 目的 查找 用尖括號 #include <>: 一般用於包含標準的庫頭文件,編譯器會去系統配置的庫環境變量和者用戶配置的路徑去搜索,而不會在項目的當前目錄去查找 用雙引號 #include "":

為基於 x86 的 Android* 遊戲選擇合適的引擎

文章 開源 版本號 操作 ani android uic 摘要 方法 摘要 遊戲開發者知道 Android 中蘊藏著巨大的機遇。 在 Google Play 商店的前 100 款應用中,約一半是遊戲應用(在利潤最高的前 100 款應用中。它們所占的比例超過 90%)

iOS開發 打印CGRectNSStringFromCGRect

字節 科學 nbsp cal 整型 string cgrect 計算 some NSLog(@"%@",NSStringFromCGRect(pickerView.frame)); 或者 CFShow(NSStringFromCGRect(pickerView.fram