コード例 #1
0
ファイル: simpleIkSolver.cs プロジェクト: DevZhav/The-Forest
    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;
    }
コード例 #2
0
 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;
     }
 }
コード例 #3
0
 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;
     }
 }