1using System.Collections;
2using System.Collections.Generic;
5using Valve.VR.InteractionSystem;
13 private GameObject attachedGameObject, helperGO, leftHand, rightHand;
14 private Vector3 rightHandPos, leftHandPos;
16 private Transform OriginalParent;
17 internal bool isRunning =
false;
18 internal bool stop =
true;
23 hands = FindObjectsOfType<HandCopySkelet>();
30 if (Player.instance ==
null)
return;
32 var playerHands = Player.instance.hands;
34 if (playerHands !=
null)
37 if (gameObject !=
null)
39 offsetHolder = gameObject.GetComponentInParent<
OffsetHolder>();
42 rightHandPos = playerHands[3].GetComponentInChildren<
HandCopyLeap>().transform.position;
43 leftHandPos = playerHands[2].GetComponentInChildren<
HandCopyLeap>().transform.position;
44 leftHand = playerHands[2].GetComponentInChildren<
HandCopyLeap>().gameObject;
45 rightHand = playerHands[3].GetComponentInChildren<
HandCopyLeap>().gameObject;
46 var rightHandname = playerHands[3].name;
47 var leftHandname = playerHands[2].name;
50 var worldLeftPos = offsetHolder.transform.TransformPoint(offsetHolder.
LeftOffset);
51 var worldPos = offsetHolder.transform.TransformPoint(offsetHolder.
Offset);
52 var distanceLeft = Vector3.Distance(offsetHolder.transform.TransformPoint(offsetHolder.
LeftOffset), leftHandPos);
53 var distanceRight = Vector3.Distance(offsetHolder.transform.TransformPoint(offsetHolder.
Offset), rightHandPos);
71 attachedGameObject.transform.SetParent(OriginalParent,
true);
83 GameObject helper =
new GameObject();
85 attachedGameObject = tcd.gameObject;
86 OriginalParent = tcd.transform.parent;
87 helper.transform.SetParent(tcd.transform,
true);
89 helper.transform.localPosition =
Vector3.zero;
90 helper.transform.localEulerAngles =
Vector3.zero;
91 bool alreadyInGO =
false;
93 var size = tcd.GetComponentInChildren<MeshRenderer>().bounds.size;
100 if ((
Vector3.Distance(tcd.transform.TransformPoint(tcd.
LeftOffset), leftHandPos) < 0.15f) && (
Vector3.Distance(tcd.transform.TransformPoint(tcd.
Offset), rightHandPos) < 0.15f))
102 var middlePoint = ((leftHandPos + rightHandPos) / 2);
108 helper.transform.position = middlePoint;
109 helper.transform.LookAt(rightHandPos,
Vector3.ProjectOnPlane(rightHand.transform.right, -helper.transform.forward));
110 helper.transform.SetParent(OriginalParent,
true);
112 helper.transform.localScale =
Vector3.one;
114 tcd.transform.SetParent(helper.transform,
true);
116 subtraction = middlePoint - tcd.transform.position;
118 helper.transform.LookAt(rightHandPos,
Vector3.ProjectOnPlane(rightHand.transform.right, -helper.transform.forward));
120 helper.transform.localPosition = middlePoint;