解决方案
给拖拽区域(一张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 。