I believe I have a logic error in my script. I want to make the camera rotate, and I screwed up.
Here's the script;
using UnityEngine;
using System.Collections;
public class cameraController : MonoBehaviour {
public float dragSpeed;
private Vector3 dragOrigin;
private Quaternion rotateOrigin;
public Transform target;
void Start () {
dragSpeed = PlayerPrefs.GetFloat("dragSpeed", 2f);
}
// Camera movement
void Update () {
CameraDrag();
CameraRotation ();
if(Input.GetAxis ("Mouse ScrollWheel") < 0) {
if(Camera.main.fieldOfView <= 70) {
Camera.main.fieldOfView += 2f;
}
if(Camera.main.orthographicSize <= 20) {
Camera.main.orthographicSize += 0.5f;
}
}
if(Input.GetAxis("Mouse ScrollWheel") > 0) {
if(Camera.main.fieldOfView > 20) {
Camera.main.fieldOfView -= 2f;
}
if(Camera.main.orthographicSize >= 1) {
Camera.main.orthographicSize -= 0.5f;
}
}
}
void OnDestroy() {
PlayerPrefs.SetFloat("dragSpeed", dragSpeed);
}
void CameraDrag() {
if (Input.GetMouseButtonDown(2)) {
dragOrigin = Input.mousePosition;
}
else if(!Input.GetMouseButton (2)) {
return;
}
Vector3 pos = Camera.main.ScreenToViewportPoint(Input.mousePosition - dragOrigin);
Vector3 move = new Vector3(pos.x * dragSpeed, 0, pos.y * dragSpeed);
transform.Translate(move, Space.World);
}
void CameraRotation() {
if(Input.GetMouseButton (1)) {
/*float h = dragSpeed * Input.GetAxis ("Mouse X");
float v = dragSpeed * Input.GetAxis("Mouse Y");
transform.Rotate(v, h, 0);*/
rotateOrigin = Quaternion.identity;
}
else if(!Input.GetMouseButton (1)){
return;
}
Quaternion cameraRot = Camera.main.transform.rotation;
Quaternion rotate = new Quaternion(cameraRot.x, cameraRot.y, cameraRot.z, cameraRot.w);
}
}
↧