public void setBoneIn(BonesScript b) { boneIn = b; if (transform.rotation.x == b.transform.rotation.x) { if (b.getBoneGO().transform.position.y > boneGOScript.transform.position.y) { float nb = ((b.getBoneGO().transform.position.y - b.transform.localScale.y / 2) - (boneGOScript.transform.position.y + transform.localScale.y / 2)) / 2 + transform.localScale.y / 2; transform.position = new Vector3(transform.position.x, transform.position.y + nb, transform.position.z); boneGOScript.transform.position = new Vector3(boneGOScript.transform.position.x, boneGOScript.transform.position.y - nb, boneGOScript.transform.position.z); } else { float nb = ((b.getBoneGO().transform.position.y + b.transform.localScale.y / 2) - (boneGOScript.transform.position.y - transform.localScale.y / 2)) / 2 - transform.localScale.y / 2; transform.position = new Vector3(transform.position.x, transform.position.y + nb, transform.position.z); boneGOScript.transform.position = new Vector3(boneGOScript.transform.position.x, boneGOScript.transform.position.y - nb, boneGOScript.transform.position.z); } } else if (boneGOScript.transform.position.x == b.getBoneGO().transform.position.x) { Vector3 intersection = new Vector3(); if (MyMathScript.LineLineIntersection(out intersection, boneGOScript.transform.position, boneGOScript.transform.up, b.getBoneGO().transform.position, b.getBoneGO().transform.up)) { float diffY = intersection.y - boneGOScript.transform.position.y; float diffZ = intersection.z - boneGOScript.transform.position.z; transform.position = new Vector3(transform.position.x, transform.position.y + diffY, transform.position.z + diffZ); boneGOScript.transform.position = new Vector3(boneGOScript.transform.position.x, boneGOScript.transform.position.y - diffY, boneGOScript.transform.position.z - diffZ); } } }
public void copyInto(BonesScript b) { b.setMinAngle(getMinAngle()); b.setMaxAngle(getMaxAngle()); b.setRotationVelocity(rotationVelocity); //b.rotationVelocityBack = rotationVelocityBack; if (effectiveRotation != 0) { b.addRotationX(effectiveRotation); } b.setDecallage(getDecallage()); b.coef = coef; }
private bool compareX(BonesScript bone1, BonesScript bone2) { return(Mathf.Abs(bone1.transform.position.y - bone2.transform.position.y) < 0.1); }
public void average(BonesScript b) { maxAngle = (maxAngle + b.maxAngle) / 2; minAngle = (minAngle + b.minAngle) / 2; setRotationVelocity((rotationVelocity + b.rotationVelocity) / 2); }