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;
        }




    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值