public override bool IsValid(bool log) { if (!this.spineIsValid) { if (log) { base.LogWarning("IKSolverLookAt spine setup is invalid. Can't initiate solver."); } return(false); } if (!this.headIsValid) { if (log) { base.LogWarning("IKSolverLookAt head transform is null. Can't initiate solver."); } return(false); } if (!this.eyesIsValid) { if (log) { base.LogWarning("IKSolverLookAt eyes setup is invalid. Can't initiate solver."); } return(false); } if (this.spineIsEmpty && this.headIsEmpty && this.eyesIsEmpty) { if (log) { base.LogWarning("IKSolverLookAt spine, head and eyes are empty. There is nothing for the solver to solve."); } return(false); } Transform transform = IKSolver.ContainsDuplicateBone(this.spine); if (transform != null) { if (log) { base.LogWarning(transform.name + " is represented multiple times in a single IK chain. Can't initiate solver."); } return(false); } Transform transform2 = IKSolver.ContainsDuplicateBone(this.eyes); if (transform2 != null) { if (log) { base.LogWarning(transform2.name + " is represented multiple times in a single IK chain. Can't initiate solver."); } return(false); } return(true); }
public override bool IsValid(ref string message) { if (this.bones.Length == 0) { message = "IK chain has no Bones."; return(false); } if (this.bones.Length < this.minBones) { message = "IK chain has less than " + this.minBones + " Bones."; return(false); } IKSolver.Bone[] array = this.bones; for (int i = 0; i < array.Length; i++) { if (array[i].transform == null) { message = "One of the Bones is null."; return(false); } } Transform transform = IKSolver.ContainsDuplicateBone(this.bones); if (transform != null) { message = transform.name + " is represented multiple times in the Bones."; return(false); } if (!this.allowCommonParent && !IKSolver.HierarchyIsValid(this.bones)) { message = "Invalid bone hierarchy detected. IK requires for it's bones to be parented to each other in descending order."; return(false); } if (!this.boneLengthCanBeZero) { for (int j = 0; j < this.bones.Length - 1; j++) { if ((this.bones[j].transform.position - this.bones[j + 1].transform.position).magnitude == 0f) { message = "Bone " + j + " length is zero."; return(false); } } } return(true); }
public override bool IsValid(ref string message) { if (!this.spineIsValid) { message = "IKSolverLookAt spine setup is invalid. Can't initiate solver."; return(false); } if (!this.headIsValid) { message = "IKSolverLookAt head transform is null. Can't initiate solver."; return(false); } if (!this.eyesIsValid) { message = "IKSolverLookAt eyes setup is invalid. Can't initiate solver."; return(false); } if (this.spineIsEmpty && this.headIsEmpty && this.eyesIsEmpty) { message = "IKSolverLookAt eyes setup is invalid. Can't initiate solver."; return(false); } IKSolver.Bone[] bones = this.spine; Transform transform = IKSolver.ContainsDuplicateBone(bones); if (transform != null) { message = transform.name + " is represented multiple times in a single IK chain. Can't initiate solver."; return(false); } bones = this.eyes; Transform transform2 = IKSolver.ContainsDuplicateBone(bones); if (transform2 != null) { message = transform2.name + " is represented multiple times in a single IK chain. Can't initiate solver."; return(false); } return(true); }
public override bool IsValid(bool log) { if (this.bones.Length == 0) { if (log) { base.LogWarning("IK chain has no bones. Can not initiate solver."); } return(false); } if (this.bones.Length < this.minBones) { if (log) { base.LogWarning("IK chain has less than " + this.minBones + " bones. Can not initiate solver."); } return(false); } IKSolver.Bone[] array = this.bones; for (int i = 0; i < array.Length; i++) { IKSolver.Bone bone = array[i]; if (bone.transform == null) { if (log) { base.LogWarning("Bone transform is null in IK chain. Can not initiate solver."); } return(false); } } if (!this.allowCommonParent && !IKSolver.HierarchyIsValid(this.bones)) { if (log) { base.LogWarning("IK requires for it's bones to be parented to each other. Invalid bone hierarchy detected."); } return(false); } Transform transform = IKSolver.ContainsDuplicateBone(this.bones); if (transform != null) { if (log) { base.LogWarning(transform.name + " is represented multiple times in a single IK chain. Can nott initiate solver."); } return(false); } if (!this.boneLengthCanBeZero) { for (int j = 0; j < this.bones.Length - 1; j++) { float magnitude = (this.bones[j].transform.position - this.bones[j + 1].transform.position).magnitude; if (magnitude == 0f) { if (log) { base.LogWarning("Bone " + j + " length is zero. Can nott initiate solver."); } return(false); } } } return(true); }