示例#1
0
    public void RePosition(Vector3 position)
    {
        if (connectedObject != null)
        {
            //transform.position = connectedObject.GetPosOfClosestVertex (position, new Vector3[] {connectedObject.boundingBox.coordinates[4], connectedObject.boundingBox.coordinates[5],connectedObject.boundingBox.coordinates[6],connectedObject.boundingBox.coordinates[7] });
            Vector3[] positions = new Vector3[connectedObject.bottomFace.vertexBundles.Length];

            for (int i = 0; i < positions.Length; i++)
            {
                positions [i] = connectedObject.transform.TransformPoint(connectedObject.bottomFace.vertexBundles [i].coordinates);
            }

            transform.position = connectedObject.GetPosOfClosestVertex(position, positions);
        }
    }
    public void RepositionScaler()
    {
        Vector3[] vertexBundlesCoordinates = new Vector3[vertexBundles.Length];
        int       idOfVertexbundle;

        for (int i = 0; i < vertexBundles.Length; i++)
        {
            vertexBundlesCoordinates [i] = parentModelingObject.transform.TransformPoint(vertexBundles [i].coordinates);
        }

        scalerPosition = parentModelingObject.transform.InverseTransformPoint(parentModelingObject.GetPosOfClosestVertex(Camera.main.transform.position, vertexBundlesCoordinates));

        for (int i = 0; i < vertexBundles.Length; i++)
        {
            if (vertexBundles [i].coordinates == scalerPosition)
            {
                scaler = vertexBundles [i];
                parentModelingObject.scalerObject = vertexBundles [i];
                break;
            }
        }
    }