通过触摸拖动相机旋转。
我想通过触摸拖动来旋转相机。
所以我通过Google搜索看到了许多脚本。
触摸通常会看着奇怪的相机。
让我知道问题出在哪里。
这是我正在测试的。
void Start()
{
xAngle = 0f;
yAngle = 5f;
transform.rotation = Quaternion.Euler(yAngle, xAngle, 0);
}
void Update()
{
if (isCanRotate != false)
{
if (Input.touchCount > 0)
{
if (Input.GetTouch(0).phase == TouchPhase.Began)
{
FirstPoint = Input.GetTouch(0).position;
xAngleTemp = xAngle;
yAngleTemp = yAngle;
}
else if (Input.GetTouch(0).phase == TouchPhase.Moved)
{
SecondPoint = Input.GetTouch(0).position;
xAngle = xAngleTemp + (SecondPoint.x - FirstPoint.x) * 360f / Screen.width;
yAngle = yAngleTemp - (SecondPoint.y - FirstPoint.y) * 360f / Screen.height;
if (yAngle < -60f)
yAngle = -60f;
if (yAngle > 80f)
yAngle = 80f;
transform.rotation = Quaternion.Euler(yAngle, xAngle, 0.0f);
}
}
}
}
我刚刚检查了一下,如果您构建并测试Android,就没有问题。但是我使用WebGL进行构建和测试,并且WebGl中的屏幕打开了。
WebGl中是否有解决方案?
答案 0 :(得分:0)
尝试以下更新的一项: (注意:我删除了布尔变量,因为不确定何时启用它)
Vector3 FirstPoint;
Vector3 SecondPoint;
float xAngle;
float yAngle;
float xAngleTemp;
float yAngleTemp;
void Start()
{
xAngle = 0;
yAngle = 0;
this.transform.rotation = Quaternion.Euler(yAngle, xAngle, 0);
}
void Update()
{
if (Input.touchCount > 0)
{
if (Input.GetTouch(0).phase == TouchPhase.Began)
{
FirstPoint = Input.GetTouch(0).position;
xAngleTemp = xAngle;
yAngleTemp = yAngle;
}
if (Input.GetTouch(0).phase == TouchPhase.Moved)
{
SecondPoint = Input.GetTouch(0).position;
xAngle = xAngleTemp + (SecondPoint.x - FirstPoint.x) * 180 / Screen.width;
yAngle = yAngleTemp + (SecondPoint.y - FirstPoint.y) * 90 / Screen.height;
this.transform.rotation = Quaternion.Euler(yAngle, xAngle, 0.0f);
}
}
}