void Update() { if (Input.GetMouseButton(0)) { Vector2 v = new Vector2(Input.mousePosition.x / Screen.width, Input.mousePosition.y / Screen.height) - Vector2.one * 0.5f; Vector3 rhrf = rightHandRotationFactor; Quaternion rotation = transform.rotation * Quaternion.LookRotation(new Vector3(v.x * rhrf.x, v.y * rhrf.y, rhrf.z)) * Quaternion.LookRotation(-Vector3.forward) * Quaternion.LookRotation(Vector3.up); Vector3 rHOF = rightHandOffsetFactor; Vector3 rEOF = rightElbowOffsetFactor; IKInfo ikInfo = new IKInfo.IKInfoBuilder(transform, transform) .WithIKGoal(IKInfo.IKGoalTransform.RH(eyeTransform.position + eyeTransform.forward * rHOF.z + eyeTransform.right * rHOF.x - eyeTransform.up * rHOF.y, rotation)) .WithIKHint(IKInfo.IKHintTransform.RE(eyeTransform.position + eyeTransform.forward * rEOF.z + eyeTransform.right * rEOF.x - eyeTransform.up * rEOF.y, transform.rotation)) .Build(); rightHand.IKInfo = ikInfo; rightVisualizer.Visualize(ikInfo); rightHand.HandValue += Time.deltaTime; } else { rightHand.HandValue -= Time.deltaTime; } if (Input.GetMouseButton(1)) { Vector2 v = new Vector2(Input.mousePosition.x / Screen.width, Input.mousePosition.y / Screen.height) - Vector2.one * 0.5f; Vector3 lhrf = leftHandRotationFactor; Quaternion rotation = transform.rotation * Quaternion.LookRotation(new Vector3(v.x * lhrf.x, v.y * lhrf.y, lhrf.z)) * Quaternion.LookRotation(-Vector3.forward) * Quaternion.LookRotation(Vector3.up); //Quaternion.LookRotation(-Vector3.forward) // * Quaternion.LookRotation(Vector3.up); Vector3 lHOF = leftHandOffsetFactor; Vector3 lEOF = leftElbowOffsetFactor; IKInfo ikInfo = new IKInfo.IKInfoBuilder(transform, transform) .WithIKGoal(IKInfo.IKGoalTransform.LH(eyeTransform.position + eyeTransform.forward * lHOF.z + eyeTransform.right * lHOF.x - eyeTransform.up * lHOF.y, rotation)) .WithIKHint(IKInfo.IKHintTransform.LE(eyeTransform.position + eyeTransform.forward * lEOF.z + eyeTransform.right * lEOF.x - eyeTransform.up * lEOF.y, transform.rotation)) .Build(); leftHand.IKInfo = ikInfo; leftVisualizer.Visualize(ikInfo); leftHand.HandValue += Time.deltaTime; } else { leftHand.HandValue -= Time.deltaTime; } }
void Update() { if (Input.GetMouseButton(0)) { Vector2 v = new Vector2(Input.mousePosition.x / Screen.width, Input.mousePosition.y / Screen.height); Quaternion rotation = transform.rotation * Quaternion.LookRotation(transform.right) * Quaternion.LookRotation(transform.right * v.x) * Quaternion.LookRotation(transform.up * v.y); IKInfo ikInfo = new IKInfo.IKInfoBuilder(transform, transform) .WithIKGoal(IKInfo.IKGoalTransform.RH(eyeTransform.position + eyeTransform.forward * 0.3f + eyeTransform.right * 0.05f - eyeTransform.up * 0.1f, rotation)) .WithIKHint(IKInfo.IKHintTransform.RE(eyeTransform.position + eyeTransform.forward * 0.3f + eyeTransform.right * 0.1f - eyeTransform.up * 0.3f, transform.rotation)) .Build(); rightHand.IKInfo = ikInfo; rightVisualizer.Visualize(ikInfo); rightHand.HandValue += Time.deltaTime; } else { rightHand.HandValue -= Time.deltaTime; } if (Input.GetMouseButton(1)) { Vector2 v = new Vector2(Input.mousePosition.x / Screen.width, Input.mousePosition.y / Screen.height); Quaternion rotation = transform.rotation * Quaternion.LookRotation(-transform.right) * Quaternion.LookRotation(-transform.right * v.x) * Quaternion.LookRotation(transform.up * v.y); IKInfo ikInfo = new IKInfo.IKInfoBuilder(transform, transform) .WithIKGoal(IKInfo.IKGoalTransform.LH(eyeTransform.position + eyeTransform.forward * 0.3f - eyeTransform.right * 0.05f - eyeTransform.up * 0.1f, rotation)) .WithIKHint(IKInfo.IKHintTransform.LE(eyeTransform.position + eyeTransform.forward * 0.3f - eyeTransform.right * 0.1f - eyeTransform.up * 0.3f, transform.rotation)) .Build(); leftHand.IKInfo = ikInfo; leftVisualizer.Visualize(ikInfo); leftHand.HandValue += Time.deltaTime; } else { leftHand.HandValue -= Time.deltaTime; } //Item item; //if (Input.GetMouseButtonDown(1)) //{ // if (rightHand.IKInfo == null) // { // if((item = getItem())!=null) { // rightHand.IKInfo = item.GetIKInfo(eyeTransform); // } // } //} //else if (Input.GetMouseButton(1)) //{ // rightHand.HandValue += Time.deltaTime; //} //else //{ // rightHand.HandValue -= Time.deltaTime; //} //if(rightHand.HandValue == 1 && rightHand.IKInfo != null) //{ // if(rightHand.GoalDistance < 0.05) // { // //attach // } // else // { // rightHand.IKInfo.Receiver.transform.position = Vector3.Lerp(rightHand.IKInfo.Receiver.transform.position, rightHand.HandTransform.position, Time.deltaTime); // } //} //if(rightHand.HandValue <= 0 && !Input.GetMouseButton(1)) //{ // rightHand.IKInfo = null; //} //if (Input.GetMouseButtonDown(0)) //{ // if (leftHand.IKInfo == null) // { // if ((item = getItem()) != null) // { // leftHand.IKInfo = item.GetIKInfo(eyeTransform); // } // } //} //else if (Input.GetMouseButton(0)) //{ // leftHand.HandValue += Time.deltaTime; // Debug.Log("Distance left : " + leftHand.GoalDistance); //} //else //{ // leftHand.HandValue -= Time.deltaTime; //} //if (leftHand.HandValue <= 0 && !Input.GetMouseButton(0)) //{ // leftHand.IKInfo = null; //} }