using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraMove : MonoBehaviour
{
[Header("平移速度")]
[SerializeField]private float speed = 2f;
[Header("限制范围")]
[SerializeField] private Vector2 RangeX, RangeY, RangeZ;
[Header("鼠标输入方式")]
public Mouse mouse;
public MouseMoveY mouseMoveY;
[Header("鼠标移动到边缘的差值")]
[SerializeField] private float mouseOffset = 0.01f;
[Header("鼠标Y轴移动速度")]
[SerializeField] private float MouseOffsetY;
void Start()
{
}
// Update is called once per frame
void Update()
{
CameraTranslate();
CameraYmove();
}
///
/// 鼠标移动控制Y轴
///
public void CameraYmove()
{
if (mouseMoveY==MouseMoveY.边界判断)
{
Vector3 v1 = Camera.main.ScreenToViewportPoint(Input.mousePosition);
if (v1.y >= 1 - mouseOffset)
{
transform.Translate(Vector3.up * MouseOffsetY * Time.deltaTime*speed);
}
if (v1.y <= mouseOffset)
{
transform.Translate(Vector3.up * -MouseOffsetY * Time.deltaTime*speed);
}
}
if (Input.GetMouseButton((int)mouse) && mouseMoveY == MouseMoveY.按下判断)
{
float mouseY = Input.GetAxis("Mouse Y");
transform.Translate(0, mouseY * speed * Time.deltaTime, 0);
}
float CameraY = Mathf.Clamp(transform.position.y, RangeY.x, RangeY.y);
if (transform.position.y >= RangeY.x || transform.position.y <= RangeY.y)
{
transform.position = new Vector3(transform.position.x, CameraY, transform.position.z);
}
}
///
/// 摄像机平移
///
public void CameraTranslate()
{
float CameraX = Mathf.Clamp(transform.position.x, RangeX.x, RangeX.y);
float CameraZ = Mathf.Clamp(transform.position.z, RangeZ.x, RangeZ.y);
if (CameraX >= RangeX.x || CameraX <= RangeX.y)
{
transform.position = new Vector3(CameraX, transform.position.y, transform.position.z);
}
if (CameraZ >= RangeZ.x || CameraZ <= RangeX.y)
{
transform.position = new Vector3(transform.position.x, transform.position.y, CameraZ);
}
float horizontal = Input.GetAxis("Horizontal");
float vetical = Input.GetAxis("Vertical");
transform.Translate(horizontal * speed * Time.deltaTime, 0, vetical * speed * Time.deltaTime);
}
}