123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- using QFramework;
- using QFramework.MREditor;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- public class UIMove : MonoBehaviour
- {
- public int numOfCircleToShow = 1;
- public Button button;
- List<Vector2> gestureDetector = new List<Vector2>();
- Vector2 gestureSum = Vector2.zero;
- float gestureLength = 0;
- int gestureCount = 0;
- bool state = true;
- EditorPanel editorPanel = null;
- void Update()
- {
- //if (isGestureDone())
- // OpenEditor();
- if (editorPanel == null)
- editorPanel = UIKit.GetPanel<EditorPanel>();
- if (editorPanel == null)
- return;
- if(button.gameObject.activeSelf==false && editorPanel.gameObject.activeSelf==false)
- {
- button.gameObject.SetActive(true);
- }
- }
- private void Start()
- {
- button.gameObject.SetActive(true);
- button.onClick.AddListener(ButtonOnClick);
- }
- bool isGestureDone()
- {
- if (Application.platform == RuntimePlatform.Android ||
- Application.platform == RuntimePlatform.IPhonePlayer)
- {
- if (Input.touches.Length != 1)
- {
- gestureDetector.Clear();
- gestureCount = 0;
- }
- else
- {
- if (Input.touches[0].phase == TouchPhase.Canceled || Input.touches[0].phase == TouchPhase.Ended)
- gestureDetector.Clear();
- else if (Input.touches[0].phase == TouchPhase.Moved)
- {
- Vector2 p = Input.touches[0].position;
- if (gestureDetector.Count == 0 || (p - gestureDetector[gestureDetector.Count - 1]).magnitude > 10)
- gestureDetector.Add(p);
- }
- }
- }
- else
- {
- if (Input.GetMouseButtonUp(0))
- {
- gestureDetector.Clear();
- gestureCount = 0;
- }
- else
- {
- if (Input.GetMouseButton(0))
- {
- Vector2 p = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
- if (gestureDetector.Count == 0 || (p - gestureDetector[gestureDetector.Count - 1]).magnitude > 10)
- gestureDetector.Add(p);
- }
- }
- }
- if (gestureDetector.Count < 10)
- return false;
- gestureSum = Vector2.zero;
- gestureLength = 0;
- Vector2 prevDelta = Vector2.zero;
- for (int i = 0; i < gestureDetector.Count - 2; i++)
- {
- Vector2 delta = gestureDetector[i + 1] - gestureDetector[i];
- float deltaLength = delta.magnitude;
- gestureSum += delta;
- gestureLength += deltaLength;
- float dot = Vector2.Dot(delta, prevDelta);
- if (dot < 0f)
- {
- gestureDetector.Clear();
- gestureCount = 0;
- return false;
- }
- prevDelta = delta;
- }
- int gestureBase = (Screen.width + Screen.height) / 4;
- if (gestureLength > gestureBase && gestureSum.magnitude < gestureBase / 2)
- {
- gestureDetector.Clear();
- gestureCount++;
- if (gestureCount >= numOfCircleToShow)
- return true;
- }
- return false;
- }
- /// <summary>
- /// ´ò¿ª/¹Ø±Õ EditorUI
- /// </summary>
- ///
- public void ButtonOnClick()
- {
- OpenEditor();
- button.gameObject.SetActive(false);
- }
- private void OpenEditor( )
- {
- if (editorPanel == null)
- editorPanel = UIKit.GetPanel<EditorPanel>();
- if (editorPanel == null)
- return;
- editorPanel.Show();
- if(state)
- {
- state = false;
- editorPanel.FirstOnShow();
- }
- }
- }
|