Bound the gameobject from the ground

Hey guys! Here's a complicated task I cannot solve and looking forward to get ur help!

Picture of what I want to get done : http://img180.imageshack.us/i/hitpoint.jpg/

Description : I've a character, When I left click with my mouse on the Terrain the GameObject(Also called - HitPoint) goes to the hit.point position that was casted from the Mouse's position. and that HitPoint gameobject goes there with his 0,0,0 rotation. and I want it to be rotated like 180 degrees from the terrain. -Because I cannot explain exactly what I mean about rotating it like 180 degrees from the terrain the picture will make sure u understood it right. On the beginning I did this :

var HitPoint : Transform;
movePosition = hit.point;
HitPoint.transform.position = movePosition;

Now I need to rotate the HitPoint's.transform.rotation somehow. Thanks in advance!

If you have a terrain called "myTerrain", you can set the rotation of the object "myObject" (your cylinder) using this:

myObject.rotation = Quaternion.LookRotation(
     myTerrain.terrainData.GetInterpolatedNormal(
          myObject.transform.position.x / myTerrain.terrainData.size.x,
          myObject.transform.position.z / myTerrain.terrainData.size.z
     )
);

I've never actually done this before, so it's kind of a guess, but I'm fairly certain you do need to use `GetInpterpolatedNormal()`. If this exact code doesn't work, perhaps you can tweak it and figure it out yourself.

Also, this code doesn't use hitpoints for the purposes of making it more generic. This will actually work inside of Update(), and will cause "myObject" to always rotate with whatever direction the normal is at that point on the terrain.