1234567891011121314151617181920212223242526272829 |
- using UnityEngine;
- public class TiltWindow : MonoBehaviour
- {
- public Vector2 range = new Vector2(5f, 3f);
- Transform mTrans;
- Quaternion mStart;
- Vector2 mRot = Vector2.zero;
- void Start ()
- {
- mTrans = transform;
- mStart = mTrans.localRotation;
- }
- void Update ()
- {
- Vector3 pos = Input.mousePosition;
- float halfWidth = Screen.width * 0.5f;
- float halfHeight = Screen.height * 0.5f;
- float x = Mathf.Clamp((pos.x - halfWidth) / halfWidth, -1f, 1f);
- float y = Mathf.Clamp((pos.y - halfHeight) / halfHeight, -1f, 1f);
- mRot = Vector2.Lerp(mRot, new Vector2(x, y), Time.deltaTime * 5f);
- mTrans.localRotation = mStart * Quaternion.Euler(-mRot.y * range.y, mRot.x * range.x, 0f);
- }
- }
|