12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using UnityEngine;
- public class MouseDrag4 : MonoBehaviour
- {
- public Transform HandL;
- public int ido;
- public bool isPlay = false;
- public bool isSelect;
- public bool isStop = false;
- public Maid maid = null;
- public GameObject obj;
- public bool reset;
- private Vector3 mouseIti;
- private Vector3 mouseIti2;
- private Vector3 off;
- private Vector3 off2;
- private Vector3 rotate;
- private Vector3 worldPoint;
- public void OnMouseDown()
- {
- if (maid == null)
- return;
- worldPoint = Camera.main.WorldToScreenPoint(transform.position);
- off = transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, worldPoint.z));
- off2 = new Vector3(obj.transform.position.x - HandL.position.x,
- obj.transform.position.y - HandL.position.y,
- obj.transform.position.z - HandL.position.z);
- mouseIti = Input.mousePosition;
- isSelect = true;
- rotate = HandL.localEulerAngles;
- }
- public void OnMouseDrag()
- {
- if (maid == null)
- return;
- if (reset)
- {
- reset = false;
- worldPoint = Camera.main.WorldToScreenPoint(transform.position);
- off = transform.position
- - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, worldPoint.z));
- off2 = new Vector3(obj.transform.position.x - HandL.position.x,
- obj.transform.position.y - HandL.position.y,
- obj.transform.position.z - HandL.position.z);
- rotate = HandL.localEulerAngles;
- mouseIti = Input.mousePosition;
- }
- if (mouseIti != Input.mousePosition)
- {
- Vector3 vector3_1 = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, worldPoint.z))
- + off - off2;
- Vector3 vector3_2 = Input.mousePosition - mouseIti;
- Transform transform = GameMain.Instance.MainCamera.gameObject.transform;
- Vector3 vector3_3 = transform.TransformDirection(Vector3.right);
- Vector3 vector3_4 = transform.TransformDirection(Vector3.forward);
- if (mouseIti2 != Input.mousePosition)
- {
- HandL.localEulerAngles = rotate;
- if (ido == 1)
- {
- HandL.RotateAround(HandL.position, new Vector3(vector3_3.x, 0.0f, vector3_3.z), vector3_2.y / 1f);
- HandL.RotateAround(HandL.position, new Vector3(vector3_4.x, 0.0f, vector3_4.z), (float) (-(double) vector3_2.x / 1.5));
- }
- if (ido == 2)
- HandL.localRotation = Quaternion.Euler(HandL.localEulerAngles)
- * Quaternion.AngleAxis(vector3_2.x / 1.5f, Vector3.right);
- }
- }
- mouseIti2 = Input.mousePosition;
- }
- }
|