Animation and Position

I set a game object to play an animation to change it’s position and rotation and when it reach the end an event trigger start and smooth damp the object so it positioned in front of the main camera but it wouldn’t do that it wouldn’t move at all

 public void ChangePostion ()
    	{
    		Camera.main.transform.LookAt (gameObject.transform);
    		Vector3 targetPosition = ItemViewer.localPosition;
    			transform.position = Vector3.SmoothDamp (transform.position, targetPosition, ref velocity, smoothTime * Time.deltaTime);
    	}

smoothdamping is a gradual movement so it needs to be called in update function also your position is already controlled by animation curves
so after completing animation you need to specify that the movement is now controlled by code and not by animation,you can do this by checking
“apply root motion” on animator component.

change your code like this:

bool canmove;

void Update()
	{
	     if(canmove)
		transform.position = Vector3.SmoothDamp (transform.position, targetPosition, ref velocity, smoothTime * Time.deltaTime);
	}

public void ChangePostion ()
         {
	     GetComponent<Animator>().applyRootMotion = true;
             Camera.main.transform.LookAt (gameObject.transform);
             Vector3 targetPosition = ItemViewer.localPosition;
	     canmove=true;
         }

It may be because Animator overrides it’s position change. Try switching it off once your object starts being moved my trigger.