unity_手游拖拽屏幕改变摄像机视角卡顿问题

解决方案

给拖拽区域(一张Image)加 EventTrigger

部分代码

    #region 视角旋转

    public float rotX;
    public float rotY;

    private Vector2 lookStartPos;

    public void OnLookClickDown(BaseEventData data)
    {
        PointerEventData eventData = data as PointerEventData; 
        lookStartPos = eventData.position;
    }

    public void OnLookAreaClickUp(BaseEventData eventData)
    {
    }

    public void OnLookAreaDrag(BaseEventData data)
    {
        PointerEventData eventData = data as PointerEventData; 
        Vector2 distance = eventData.position - lookStartPos;
        lookStartPos = eventData.position;

        rotY += distance.x * 10 * Time.deltaTime;
        rotX -= distance.y * 10 * Time.deltaTime;
        rotX = Mathf.Clamp(rotX, -80, 80);

        Quaternion localRotation = Quaternion.Euler(rotX, rotY, 0.0f);
        Camera.main.transform.rotation = localRotation;

        _playerController.transform.rotation = localRotation;
        _playerController.transform.eulerAngles = new Vector3(0, _playerController.transform.eulerAngles.y, 0);
    }

    #endregion

原因:

可能是因为缺少 BeginDrag 。

猜你喜欢

转载自blog.csdn.net/ashmoc/article/details/126506686