角度限制的自由旋转查看

阅读 45

2022-03-15

using UnityEngine;

public class Rotate : MonoBehaviour
{
    public float speedX;
    public float speedY;

    private float mouseX;
    private float mouseY;
    private float scrollWheel;
    
    private float yCount;   //Y轴变化值
    private float lastYCount;   //上一次Y轴变化值
    void Update()
    {
        if (Input.GetMouseButton(0))
        {
            mouseX = Input.GetAxis("Mouse X");
            transform.Rotate(Vector3.up, mouseX * speedX, Space.Self);

            mouseY = Input.GetAxis("Mouse Y");
            float yValue = mouseY * speedY * Time.deltaTime;
            yCount += yValue;
            yCount = Mathf.Clamp(yCount, -90, 90);
            yValue = yCount - lastYCount;
            transform.Rotate(Vector3.right, yValue, Space.World);
            lastYCount = yCount;
        }

        scrollWheel = Input.GetAxis("Mouse ScrollWheel");
        if(scrollWheel != 0)
        {
            transform.localScale += scrollWheel * Vector3.one;
            float scale = Mathf.Clamp(transform.localScale.x, 0.5f, 2);
            transform.localScale = Vector3.one * scale;
        }
    }
}

精彩评论(0)

0 0 举报