RootMotion.FinalIK.IKSolver.ContainsDuplicateBone C# (CSharp) Method

ContainsDuplicateBone() public static method

Checks if an array of objects contains any duplicates.
public static ContainsDuplicateBone ( Bone bones ) : Transform
bones Bone
return UnityEngine.Transform
		public static Transform ContainsDuplicateBone(Bone[] bones) {
			for (int i = 0; i < bones.Length; i++) {
				for (int i2 = 0; i2 < bones.Length; i2++) {
					if (i != i2 && bones[i].transform == bones[i2].transform) return bones[i].transform;
				}
			}
			return null;
		}

Usage Example

示例#1
0
        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);
        }
All Usage Examples Of RootMotion.FinalIK.IKSolver::ContainsDuplicateBone