1 Vector2 oldPos1;//第一个手指 2 Vector2 oldPos2;//第二个手指 3 4 void Update() 5 { 6 //如果有2个手指 7 if (Input.touchCount == 2) 8 { 9 //如果第一个手指位置是移动的或者第二个手指位置是移动的 10 if (Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved) 11 { 12 Vector2 newPos1 = Input.GetTouch(0).position; 13 Vector2 newPos2 = Input.GetTouch(1).position; 14 if (isEnLarge(oldPos1, oldPos2, newPos1, newPos2)) 15 { 16 float oldScale = transform.localScale.x; 17 float newScale = oldScale * 1.025f; 18 transform.localScale = new Vector3(newScale, newScale, newScale); 19 20 } 21 else 22 { 23 float oldScale = transform.localScale.x; 24 float newScale = oldScale / 1.025f; 25 transform.localScale = new Vector3(newScale, newScale, newScale); 26 27 } 28 oldPos1 = newPos1; 29 oldPos2 = newPos2; 30 } 31 } 32 } 33 34 //判断手势 35 bool isEnLarge(Vector2 oldP1, Vector2 oldP2, Vector2 newP1, Vector2 newP2) 36 { 37 float length1 = Mathf.Sqrt((oldP1.x - oldP2.x) * (oldP1.x - oldP2.x) + (oldP1.y - oldP2.y) * (oldP1.y - oldP2.y)); 38 float length2 = Mathf.Sqrt((newP1.x - newP2.x) * (newP1.x - newP2.x) + (newP1.y - newP2.y) * (newP1.y - newP2.y)); 39 40 //放大 41 if (length1 < length2) 42 { 43 return true; 44 } 45 //缩小 46 else 47 { 48 return false; 49 } 50 }