Example #1
0
    void OnMouseDrag()
    {
        Vector3 标操作位置InWorld =
            AT_Utils.标位置从屏幕转换到世界参考系(transform);

        _操作轨迹.Add(标操作位置InWorld);

        Collider2D 碰撞体 =
            GetComponent <Collider2D> ();
        bool 是否在碰撞体内拖动 =
            碰撞体.OverlapPoint(标操作位置InWorld);

        if (!是否在碰撞体内拖动)
        {
            _操作轨迹.Clear();
        }

        int 记录点数量 = _操作轨迹.Count;

        if (记录点数量 < 2)
        {
            return;
        }

        Vector3 最近一次位移 =
            计算最近一次位移();

        Vector3 右方InWorld =
            transform.TransformDirection(Vector3.right);
        float 位移在向右方向上的投影 =
            Vector3.Dot(最近一次位移, 右方InWorld);

        Debug.Log("位移在向右方向上的投影" +
                  1000.0f * 位移在向右方向上的投影);
    }
Example #2
0
    public void MoveComp()
    {
        if (TgtObj == null)
        {
            return;
        }

        AT_Utils.CopyComponent <Component> (From, TgtObj);
        Destroy(From);
    }
Example #3
0
    void OnMouseDrag()
    {
        Vector3 标操作位置InWorld;

        标操作位置InWorld =
            AT_Utils.标位置从屏幕转换到世界参考系(
                transform);

        _操作轨迹.Add(标操作位置InWorld);

        Collider2D 碰撞体 =
            GetComponent <Collider2D> ();
        bool 是否在碰撞体内拖动 =
            碰撞体.OverlapPoint(标操作位置InWorld);

        if (!是否在碰撞体内拖动)
        {
            _操作轨迹.Clear();
        }

        int 记录点数量 = _操作轨迹.Count;

        if (记录点数量 < 3)
        {
            return;
        }

        Vector3 最近一次位移 =
            获得位移(0);
        Vector3 一次位移 =
            获得位移(1);

        Vector3 叉乘矢量 = 100000.0f *
                       Vector3.Cross(
            最近一次位移, 一次位移);

        Debug.Log("叉乘矢量:" + 叉乘矢量);

        if (Mathf.Abs(叉乘矢量.z) > 50.0f)
        {
            _旋转了.Invoke();
        }

        _旋转了带参数.Invoke(叉乘矢量.z);
    }