moving an object along a surface, then rotating it around end of surface

Im trying to move a circular gameobject along a surface and then rotate it around the corner / end point of that surface.

I think it can be soloved using trigonometry, but not 100 percent sure.
I can move the object along the surface using this calculation…offset = tan(A) x radius of circle. this gives me a distance I can offset the circle by, but having trouble with the rotation.

please see attached image for a better understanding of what i am trying to achieve.
[3226-offset+problem-unity-page-001.jpg|3226]

It would be really helful if anyone can give me any advice on how to to resolve this problem.
thanks in advance.

javascript code for stage1 of the diagram…

var player : GameObject;
var d1 : float = 1;
var offset : float = 0;

function Update () {
	var angleA : float = Vector3.Angle(player.transform.position - transform.position, transform.forward);
	var angleB : float = 90 - angleA;
	var angleC : float = angleA + angleB;

	var angleCRadians : float = angleC * (Mathf.PI/180);
	var angleCTan = Mathf.Tan(angleCRadians);
	offset =  angleCTan x d1;

	transform.position += transform.TransformDirection(Vector3( -offset, 0, -d1));
}

So your formula only offsets him in one direction? Just use that until the difference between his X position and the edge of the wall is his radius, and then use the same formula to calculate his z offset on the Right side of the wall. that should give you the effect you want,

David