UNITY手指接觸屏幕對物體進行旋轉和縮放

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


public class MoveAndScaler : MonoBehaviour
{
    Vector3 scale = Vector3.zero;
    Touch touchP;
    Touch oldP1;
    Touch oldp2;
    // Use this for initialization
    void Start()
    {


    }




    void FixedUpdate()
    {
        if (Input.touchCount.Equals(0))
            return;
        if (Input.touchCount.Equals(1))
        {
            touchP = Input.GetTouch(0);
            this.gameObject.transform.Rotate(Vector3.up * Time.fixedDeltaTime * touchP.deltaPosition.x, Space.World);
            this.gameObject.transform.Rotate(Vector3.right * Time.fixedDeltaTime * touchP.deltaPosition.y, Space.World);
        }
        if (Input.touchCount.Equals(2))
        {
            Touch newP1 = Input.GetTouch(0);
            Touch newP2 = Input.GetTouch(1);
            if (newP2.phase == TouchPhase.Began)
            {
                oldP1 = newP1;
                oldp2 = newP2;
                return;
            }
            float oldDistance = Vector2.Distance(oldP1.position, oldp2.position);
            float newDistance = Vector2.Distance(newP1.position, newP2.position);
            float offset = newDistance - oldDistance;
            float scaleFactor = offset / 200;
            Vector3 localScale = transform.localScale;
            Vector3 realScale = new Vector3(localScale.x + scaleFactor, localScale.y + scaleFactor, localScale.z + scaleFactor);
            if (realScale.x > 0.2f && realScale.y > 0.2f && realScale.z > 0.2f)
            {
                transform.localScale = realScale;
            }
            oldP1 = newP1;
            oldp2 = newP2;
        }




    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章