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 * 位移在向右方向上的投影); }
public void MoveComp() { if (TgtObj == null) { return; } AT_Utils.CopyComponent <Component> (From, TgtObj); Destroy(From); }
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); }