我想在不使用gameobject
的情况下轮换我的z-axis
,以便它只能水平和垂直旋转。
现在我正在使用此代码
void Update () {
if (Input.touchCount == 1) {
var touch = Input.GetTouch(0);
switch(Input.GetTouch(0).phase){
case TouchPhase.Moved:
float swipeDistVertical = (new Vector3(0, touch.deltaPosition.y, 0) - new Vector3(0, startPos.y, 0)).magnitude;
if (swipeDistVertical > 0)
{
float swipeValue = Mathf.Sign(touch.deltaPosition.y - startPos.y);
if (swipeValue > 0 || swipeValue < 0)//up swipe
{
vertical = true;
horizontal = false;
}
}
float swipeDistHorizontal = (new Vector3(touch.deltaPosition.x,0, 0) - new Vector3(startPos.x, 0, 0)).magnitude;
if (swipeDistHorizontal > 0)
{
float swipeValue = Mathf.Sign(touch.deltaPosition.x - startPos.x);
if (swipeValue > 0 || swipeValue < 0)//right swipe
{
horizontal = true;
vertical = false;
}
}
if(vertical)
{
transform.Rotate(touch.deltaPosition.y * 0.3f, 0,0,Space.World);
}
if(horizontal)
{
transform.Rotate(0,touch.deltaPosition.x * 0.3f,0,Space.World);
}
break;
}
}
}
我从这个link
获得了这段代码现在我可以旋转,但它在z轴上旋转以及我不想要的。并且它不会处理垂直滑动,它在两者之间切换,而不是立即识别它是垂直的。
我使用Unity 4.6.2,这应该适用于iOS
和Android
。
答案 0 :(得分:0)
在您放置&#34; break&#34;。
之前添加以下代码float z=transform.rotation.z;
transform.Rotate(0,0,-z);