using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using DG.Tweening; namespace Level25 { public class L25MouseCtrl : MonoBehaviour, IDragHandler, IPointerDownHandler, IPointerUpHandler { public Transform item; public Transform camera; public Transform seletedItem; private bool isClick = false; private Vector3 tempItemRote; private Vector3 mouseClickPos; private Vector3 mouseLastPos; private int roteDir; private Vector2 midPos; private void Start() { midPos = new Vector2(Screen.width / 2, Screen.height / 2); Debug.Log(midPos); } private void Update() { } public void OnDrag(PointerEventData eventData) { float mouseX = Input.GetAxis("Mouse X"); float mouseY = Input.GetAxis("Mouse Y"); if (Input.GetMouseButton(0)) { if (Mathf.Abs( mouseX) >=0.2f) { item.transform.Rotate(Vector3.up, -mouseX * 5, Space.World); } else if (Mathf.Abs(mouseY) >= 0.2f) { item.transform.Rotate(Vector3.right, -mouseY * 5, Space.World); } //camera.transform.RotateAround(item.position, Vector3.up, mouseX * 5); //camera.transform.RotateAround(item.position, Vector3.right, mouseY * 5); } } public void OnPointerDown(PointerEventData eventData) { isClick = true; mouseClickPos = Input.mousePosition; mouseLastPos = mouseClickPos; tempItemRote = item.transform.localEulerAngles; RaycastCheck(); } public void OnPointerUp(PointerEventData eventData) { isClick = false; mouseClickPos = Vector2.zero; mouseLastPos = Vector2.zero; tempItemRote = Vector3.zero; roteDir = 0; } public void RaycastCheck() { Ray ray = new Ray(seletedItem.position, seletedItem.forward); RaycastHit hit; if (Physics.Raycast(ray,out hit,1000)) { Debug.Log(hit.transform.gameObject); AnswerSelected answerSelected; answerSelected = hit.transform.gameObject.GetComponent(); if (answerSelected == null) return; answerSelected.ChangeState(); } } } }