コード例 #1
0
ファイル: BonesScript.cs プロジェクト: hpn789/EVOSYSTEM
    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);
            }
        }
    }
コード例 #2
0
ファイル: BonesScript.cs プロジェクト: hpn789/EVOSYSTEM
    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;
    }
コード例 #3
0
 private bool compareX(BonesScript bone1, BonesScript bone2)
 {
     return(Mathf.Abs(bone1.transform.position.y - bone2.transform.position.y) < 0.1);
 }
コード例 #4
0
ファイル: BonesScript.cs プロジェクト: hpn789/EVOSYSTEM
 public void average(BonesScript b)
 {
     maxAngle = (maxAngle + b.maxAngle) / 2;
     minAngle = (minAngle + b.minAngle) / 2;
     setRotationVelocity((rotationVelocity + b.rotationVelocity) / 2);
 }