本人使用 这网页插件 做展厅程序 ,遇到了个触控放大网页的模型的问题。在触屏设备上,进入网页可以通过双指放大,但这插件不支持双指触控,故而自己研究了下方法。
在 PointerUIBase.cs 代码中,第186行的方法里,257行的 MouseScroll = stateToUse.scrollDelta代码,这个是鼠标滚轮,返回的值 分别为 Vector2(0,1), Vector2(0,-1),Vector2(0,0),通过修改 MouseScroll 的值就可以控制网页上滚轮的进度。
注意,该函数的返回值的频率很低,返回频率取决于你滚 鼠标滚轮的速度,
我在 PointerUIGUI.cs 代码中进行修改,添加如下函数,注意: Input.touchCount 只在触控屏上有用,普通电脑不带触控是没有反应的。
private void Update()
{
MouseScroll = GetTouchDir();
}
public float lastDis;
public Vector2 GetTouchDir()
{
if (Input.touchCount == 2)
{
Vector2 Position1 = Input.GetTouch(0).position;
Vector2 Position2 = Input.GetTouch(1).position;
if (Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved)
{
float tmp_dis = Vector3.Distance(Position1, Position2);
lastDis = tmp_dis;
if (tmp_dis > lastDis)
{
Debug.LogError("放大");
return new Vector2(0, 1);
}
else if (tmp_dis < lastDis)
{
Debug.LogError("缩小");
return new Vector2(0, -1);
}
return Vector2.zero;
}
else
{
return Vector2.zero;
}
}
else
{
lastDis = 0;
return Vector2.zero;
}
}
Over