/*************************************************************************
* Copyright © #COPYRIGHTYEAR# LiuKe. All rights reserved.
*------------------------------------------------------------------------
* File : FiveFingers.cs
* Description : Null.
*------------------------------------------------------------------------
* Author : LiuKe
* Version : 0.1.0
* Date : #CREATEDATE#
* Description : Initial development version.
*************************************************************************/
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections.Generic;
namespace LiuKe.Script
{
//[AddComponentMenu("")]
//[RequireComponent(typeof())]
public class FiveFingers : MonoBehaviour, IPointerDownHandler
{
List<Vector2> vector2s = new List<Vector2>();
public List<RectTransform> rectTransforms = new List<RectTransform>();
public RectTransform target;
public void OnPointerDown(PointerEventData eventData)
{
vector2s.Clear();
//原点差值
Vector2 vector2 = new Vector2(960, 540);
//包围盒
List<Bounds> bounds1 = new List<Bounds>();
if (Input.touchCount == 5)
{
//print(Input.GetTouch(0).position - vector2);
//print(Input.GetTouch(1).position - vector2);
//print(Input.GetTouch(2).position - vector2);
//print(Input.GetTouch(3).position - vector2);
//print(Input.GetTouch(4).position - vector2);
vector2s.Add(Input.GetTouch(0).position - vector2);
vector2s.Add(Input.GetTouch(1).position - vector2);
vector2s.Add(Input.GetTouch(2).position - vector2);
vector2s.Add(Input.GetTouch(3).position - vector2);
vector2s.Add(Input.GetTouch(4).position - vector2);
for (int i = 0; i < vector2s.Count; i++)
{
Bounds bounds = new Bounds(vector2s[i],new Vector3(10,10));
bounds1.Add(bounds);
}
UIManager.GetUI<OperationWindow>().GetRectTransform("MianImage").localPosition = BoundsAveragePosition(bounds1);
}
}
Vector2 FindAveragePosition()
{
Vector2 averagePos = new Vector2();
int numTagets = 0;
for (int i = 0; i < vector2s.Count; i++)
{
averagePos += vector2s[i];
numTagets++;
}
return averagePos /= numTagets;
}
Vector2 BoundsAveragePosition(List<Bounds> bounds1)
{
Bounds averagePos = bounds1[0];
for (int i = 0; i < bounds1.Count; i++)
{
averagePos.Encapsulate(bounds1[i]);
}
return averagePos.center;
}
#region Field and Property
// [Tooltip("")]
// [SerializeField]
#endregion
#region Private Method
// Use this for initialization.
void Start()
{
}
// Update is called once per frame.
void Update()
{
}
#endregion
#region Public Method
#endregion
}
}