private void CheckAngleRestrictions(simpleIkSolver.JointEntity jointEntity) { Vector3 eulerAngles = jointEntity.Joint.localRotation.eulerAngles; if (jointEntity.AngleRestrictionRange.xAxis) { if (eulerAngles.x > 180f) { eulerAngles.x -= 360f; } eulerAngles.x = Mathf.Clamp(eulerAngles.x, jointEntity.AngleRestrictionRange.xMin, jointEntity.AngleRestrictionRange.xMax); } if (jointEntity.AngleRestrictionRange.yAxis) { if (eulerAngles.y > 180f) { eulerAngles.y -= 360f; } eulerAngles.y = Mathf.Clamp(eulerAngles.y, jointEntity.AngleRestrictionRange.yMin, jointEntity.AngleRestrictionRange.yMax); } if (jointEntity.AngleRestrictionRange.zAxis) { if (eulerAngles.z > 180f) { eulerAngles.z -= 360f; } eulerAngles.z = Mathf.Clamp(eulerAngles.z, jointEntity.AngleRestrictionRange.zMin, jointEntity.AngleRestrictionRange.zMax); } jointEntity.Joint.localEulerAngles = eulerAngles; }
public void ResetJoints() { simpleIkSolver.JointEntity[] jointEntities = this.JointEntities; for (int i = 0; i < jointEntities.Length; i++) { simpleIkSolver.JointEntity jointEntity = jointEntities[i]; jointEntity.Joint.localRotation = jointEntity._initialRotation; } }
private void Start() { if (this.Target == null) { this.Target = base.transform; } simpleIkSolver.JointEntity[] jointEntities = this.JointEntities; for (int i = 0; i < jointEntities.Length; i++) { simpleIkSolver.JointEntity jointEntity = jointEntities[i]; jointEntity._initialRotation = jointEntity.Joint.localRotation; } }