You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.4 KiB
C#
61 lines
2.4 KiB
C#
using UnityEngine;
|
|
using FluidDynamics;
|
|
public class CameraMovement : MonoBehaviour {
|
|
public Main_Fluid_Simulation sim;
|
|
public KeyCode plpus;
|
|
public KeyCode minus;
|
|
public KeyCode plpusS;
|
|
public KeyCode minusS;
|
|
public float camplusspeed;
|
|
public float speed;
|
|
Vector3 prevpos;
|
|
Vector3 mpos;
|
|
Bounds _bounds;
|
|
Bounds _cam_bounds;
|
|
public Vector3 boundsSize;
|
|
public Vector2 Camerabounds;
|
|
Camera cam;
|
|
Vector2 camSize;
|
|
float defaultcamsize;
|
|
// Use this for initialization
|
|
void Start () {
|
|
cam = GetComponent<Camera>();
|
|
float size = cam.orthographicSize * 2;
|
|
float width = size * (float)Screen.width / Screen.height;
|
|
float height = size;
|
|
camSize = new Vector2(width, height)/2;
|
|
_cam_bounds.center = transform.position;
|
|
_cam_bounds.size = Camerabounds;
|
|
defaultcamsize = cam.orthographicSize;
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update () {
|
|
cam.orthographicSize = Mathf.Clamp(cam.orthographicSize, 0, defaultcamsize);
|
|
if (Input.GetKey(plpus))
|
|
cam.orthographicSize+= camplusspeed*Time.deltaTime;
|
|
if (Input.GetKey(minus))
|
|
cam.orthographicSize -= camplusspeed * Time.deltaTime;
|
|
if (Input.GetKey(plpusS))
|
|
sim.Vorticity += camplusspeed * Time.deltaTime;
|
|
if (Input.GetKey(minusS))
|
|
sim.Vorticity -= camplusspeed * Time.deltaTime;
|
|
_bounds.size = boundsSize;
|
|
_bounds.center = transform.position;
|
|
|
|
mpos = Input.mousePosition;
|
|
prevpos = new Vector3(Camera.main.ScreenToWorldPoint(mpos).x, Camera.main.ScreenToWorldPoint(mpos).y,transform.position.z);
|
|
if (!_bounds.Contains(prevpos))
|
|
{
|
|
transform.position = Vector3.Lerp(transform.position, prevpos, speed*Time.deltaTime);
|
|
}
|
|
transform.position = new Vector3(Mathf.Clamp(transform.position.x, _cam_bounds.min.x + camSize.x, _cam_bounds.max.x - camSize.x), Mathf.Clamp(transform.position.y, _cam_bounds.min.y + camSize.y, _cam_bounds.max.y- camSize.y),transform.position.z);
|
|
}
|
|
private void OnDrawGizmos()
|
|
{
|
|
Gizmos.color = Color.green;
|
|
Gizmos.DrawWireCube(transform.position, new Vector2(boundsSize.x , boundsSize.y));
|
|
Gizmos.DrawWireCube(transform.position, new Vector2(Camerabounds.x, Camerabounds.y));
|
|
}
|
|
}
|