81 lines
2.6 KiB
C#
81 lines
2.6 KiB
C#
using DG.Tweening;
|
|
using UnityEngine;
|
|
using XFrame.Core.UI;
|
|
|
|
namespace YHElectric
|
|
{
|
|
public enum ControlType
|
|
{
|
|
Rotate,
|
|
Move,
|
|
Scale
|
|
}
|
|
public class CameraOperate : MonoBehaviour
|
|
{
|
|
public static CameraOperate instance;
|
|
public InputController IC;
|
|
public static bool roaming = false;//正在漫游
|
|
public float locationSpeed = 20;
|
|
public static bool operate = true;
|
|
[HideInInspector]
|
|
public Animator anim;
|
|
public float minX, minY, minZ, maxX, maxY, maxZ;
|
|
|
|
public float sensitivity = 4.0f;
|
|
[HideInInspector]
|
|
public float sensitivityAmt = 4.0f;//actual sensitivity modified by IronSights Script
|
|
|
|
private float minimumX = -360f;
|
|
private float maximumX = 360f;
|
|
|
|
private float minimumY = -35f;
|
|
private float maximumY = 35f;
|
|
[HideInInspector]
|
|
public float rotationX = 0.0f;
|
|
[HideInInspector]
|
|
public float rotationY = 0.0f;
|
|
[HideInInspector]
|
|
public float inputY = 0.0f;
|
|
|
|
public float smoothSpeed = 0.35f;
|
|
|
|
private Quaternion originalRotation;
|
|
|
|
private void Awake()
|
|
{
|
|
instance = this;
|
|
}
|
|
void Start()
|
|
{
|
|
anim = GetComponent<Animator>();
|
|
anim.enabled = false;
|
|
originalRotation = transform.localRotation;
|
|
sensitivityAmt = sensitivity;
|
|
}
|
|
void LateUpdate()
|
|
{
|
|
float h = Input.GetAxis("Horizontal");
|
|
float v = Input.GetAxis("Vertical");
|
|
transform.Translate(new Vector3(h, 0, v) * locationSpeed * Time.deltaTime);
|
|
|
|
if (Input.GetMouseButton(1))//旋转
|
|
{
|
|
float rotationY = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * Time.deltaTime * sensitivity;
|
|
float rotationX = transform.localEulerAngles.x - Input.GetAxis("Mouse Y") * Time.deltaTime * sensitivity;
|
|
rotationX = Mathf.Clamp(rotationX, 0, 90);
|
|
transform.localEulerAngles = new Vector3(rotationX, rotationY, 0);
|
|
}
|
|
if (Input.GetAxis("Mouse ScrollWheel") != 0)//滑动鼠标滚轮移动
|
|
{
|
|
transform.Translate(Vector3.forward * Input.GetAxis("Mouse ScrollWheel") * locationSpeed, Space.Self);
|
|
}
|
|
transform.position = new Vector3(//摄像机位置限制
|
|
Mathf.Clamp(transform.position.x, minX, maxX),
|
|
Mathf.Clamp(transform.position.y, minY, maxY),
|
|
Mathf.Clamp(transform.position.z, minZ, maxZ));
|
|
}
|
|
}
|
|
}
|
|
|
|
|