【问题标题】:Touch and move gameobject with 2 fingers [closed]用两根手指触摸和移动游戏对象[关闭]
【发布时间】:2016-02-02 06:56:45
【问题描述】:

我是 Unity 新手,我正在尝试构建一种方法,通过 2 根手指触摸沿 x 和 z 轴移动场景中的游戏对象。我提出了一个我认为在逻辑上正确但不符合要求的代码。请指出我的错误并告诉我最好的方法 这是我想出的代码

if (Input.touchCount == 2) {
            // Two fingers
            Touch touch_1 = Input.GetTouch (0);
            Touch touch_2 = Input.GetTouch (1);

            mFingerPosition_1 = touch_1.position;
            mFingerPosition_2 = touch_2.position;
            mMidValue = (mFingerPosition_1 + mFingerPosition_2) / 2;



            //is moving

            if ((touch_1.phase == TouchPhase.Began)&&(touch_2.phase==TouchPhase.Began)) 
            {
                move = true;
            }
            else if ((touch_1.phase == TouchPhase.Ended)||(touch_2.phase==TouchPhase.Ended)) 
            {
                move = false;
            }

            //if moving

            if(move==true)
            {
                Vector2 Axis = touch_1.position - mFingerPosition_1;
                float yAxis = speed * touch_1.deltaPosition.y;
                float xAxis = speed * touch_1.deltaPosition.x;

                //moving on z axis
                if ((Axis.y > 0)||(Axis.y<0))
                {
                    float x = mARObject.transform.position.x;
                    float y = mARObject.transform.position.y;
                    float z = mARObject.transform.position.z;
                    mARObject.transform.position.Set (x,y,yAxis+z);
                }

                //moving on x axis
                else if((Axis.x>0)||(Axis.x<0))
                {
                    float x = mARObject.transform.position.x;
                    float y = mARObject.transform.position.y;
                    float z = mARObject.transform.position.z;
                    mARObject.transform.position.Set (xAxis+x,y,z);
                }
            }

            }

提前谢谢你

【问题讨论】:

    标签: android ios unity3d touch move


    【解决方案1】:

    Vector2 Axis = touch_1.position - mFingerPosition_1; 将始终生成 (0,0) 的增量向量,因为 touch_1.position = mFingerPosition_1。而是尝试使用Touch.deltaPosition

    【讨论】:

    • 它有效,但它只影响 //moving on z axis part 。它在//在 x 轴部分移动 上没有做任何事情
    • 完成发现错误。必须使用 if 而不是 else if in //在 x 轴上移动。
    猜你喜欢
    • 1970-01-01
    • 2022-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多