Sunday, 9 October 2016

TiltWindow

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);
}
}

No comments:

Post a Comment