/// <summary> /// 计算适口偏移值 /// </summary> /// <returns>The offset position.</returns> /// <param name="handPosition">Hand position.</param> /// <param name="grabObject">Grab object.</param> public static Vector3 GetOffsetPosition(Vector3 handPosition, GameObject grabObject) { var offset = Vector3.zero; Vector3 screenDevice = MUtility.MainWorldToScreenPoint(grabObject.transform.position); Vector3 vPos = MUtility.MainScreenToWorldPoint(new Vector3(handPosition.x, handPosition.y, screenDevice.z)); offset = vPos - grabObject.transform.position; return(offset); }
public static void SetObjectGrab(GameObject target, int handIndex = 0) { var operate = GetOperateHand(handIndex); if (operate == null) { return; } Vector3 tempPos = MUtility.MainWorldToScreenPoint(target.transform.position - new Vector3(0, 0, MUtility.MainCamera.transform.position.z)); tempPos = MUtility.MainScreenToWorldPoint(tempPos); operate.SetObjectGrab(target, tempPos.z); }