예제 #1
0
    override public void OnSCPointerDrag(InputDevicePartBase part, SCPointEventData eventData)
    {
        if (!dc.isBoth && !dc.isMove && isDown)
        {
            float   temp     = 0;
            float   temp2    = 0;
            float   temp3    = 0;
            Vector3 poslocal = eventData.dragPosition;
            Vector3 xlv3     = GetNormal(dragInitLocalPosition, poslocal);
            //Debug.Log("xlv3===========》"+xlv3);
            //  xlv3 = new Vector3(xlv3.x, xlv3.y, 0);
            // xlv3 = dc.testRot2.transform.InverseTransformPoint(xlv3);
            temp  = xlv3.x;
            temp2 = xlv3.y;
            temp3 = xlv3.z;
            float xishu = 0.7f;
            switch (index)
            {
            case 0:
                perValue = (1 + (temp + temp2 + temp3) * xishu);
                break;

            case 1:
                perValue = (1 + (temp + temp2 - temp3) * xishu);
                break;

            case 2:
                perValue = (1 + (-temp + temp2 + temp3) * xishu);
                break;

            case 3:
                perValue = (1 + (-temp + temp2 - temp3) * xishu);
                break;

            case 4:
                perValue = (1 + (temp - temp2 - temp3) * xishu);
                break;

            case 5:
                perValue = (1 + (temp - temp2 - temp3) * xishu);
                break;

            case 6:
                perValue = (1 + (-temp - temp2 + temp3) * xishu);
                break;

            case 7:
                perValue = (1 + (-temp - temp2 - temp3) * xishu);
                break;
            }
            if ((dc.scale3 * perValue).x > (dc.Tscale3 / 5).x && (dc.scale3 * perValue).x < (dc.Tscale3 * 5).x)
            {
                dc.transform.localScale = dc.scale3 * (perValue);
                dc.lr.widthMultiplier   = dc.LineSize * (perValue);
                if (dc.transform != dc.editGame.transform.parent)
                {
                    for (int i = 0; i < dc.veces.Length; i++)
                    {
                        dc.scaleGameList[i].transform.localScale = dc.sScale * (perValue);
                    }
                    for (int i = 0; i < 12; i++)
                    {
                        dc.eulerGameList[i].transform.localScale = dc.rScale * (perValue);
                    }
                }
            }
            dc.changeLine();
        }
        else
        {
            dc.isFangda = false;
        }
    }
예제 #2
0
 override public void OnSCPointerDrag(InputDevicePartBase part, SCPointEventData eventData)
 {
     if (!dc.isBoth && !dc.isMove && isDown)
     {
         float temp  = 0;
         float temp2 = 0;
         float temp3 = 0;
         // Vector3 poslocal = new Vector3(0, 0, 0);
         Vector3 poslocal = eventData.dragPosition;
         Vector3 xlv3     = GetNormal(dragInitLocalPosition, poslocal);
         temp  = xlv3.x;
         temp2 = xlv3.y;
         temp3 = xlv3.z;
         float xishu = 40;
         if (index == 4 || index == 8 || index == 9 || index == 11)
         {
             if (index == 9 || index == 11)
             {
                 temp = -temp;
             }
             if (index == 4 || index == 11)
             {
                 temp3 = -temp3;
             }
             dc.transform.localEulerAngles = new Vector3(0, (temp + temp3 + temp2) * xishu, 0);
             //  dc.transform.Rotate(xxjd - nowxz);
             //   Debug.Log("temp========>"+ index + nowxz);
         }
         else if (index == 2 || index == 6 || index == 0 || index == 7)
         {
             if (index == 7 || index == 6)
             {
                 temp = -temp;
             }
             if (index == 7 || index == 0)
             {
                 temp3 = -temp3;
             }
             if (index == 2 || index == 6)
             {
                 temp2 = -temp2;
             }
             dc.transform.localEulerAngles = new Vector3(0, 0, -(temp + temp3 - temp2) * xishu);
             Debug.Log(" 绕Z轴旋转Z" + index);
         }
         else
         {
             if (index == 5 || index == 10)
             {
                 temp3 = -temp3;
             }
             if (index == 5 || index == 3)
             {
                 temp2 = -temp2;
             }
             dc.transform.localEulerAngles = new Vector3((temp + temp3 + temp2) * xishu, 0, 0);
             Debug.Log(" 绕X轴旋转Y" + index + xlv3);
         }
         dc.changeLine();
         if (focusobj.childCount >= 4)
         {
             focusobj.GetChild(3).gameObject.SetActive(false);
         }
     }
     else
     {
         Debug.Log("关闭DOWN");
         isDown = false;
     }
 }