Substituting between two gameobjects transform position

Can someone please give me a script which allows my third person character to switch its transform position with certain gameobjects with tag “swappable or sub”. This is the script i have came up with but it doesnt work:

using UnityEngine;
using System.Collections;
 
 public class Swap : MonoBehaviour {

 //This entire script is attach to third person character
 
     public Transform myObjectA; // my player goes here
     private Transform myObjectB;
    private GameObject Objectb;
     private RaycastHit last_rayhit;
     public AudioClip audioclip;
  
 
    // Use this for initialization
     void Start () {
     
     }
 

     GameObject GetClickedGameObject()
     {
 
         Vector3 origin = transform.position;
        Vector3 direction = Camera.main.transform.forward;
         float range = 20;
 
 
         if (Physics.Raycast(origin, direction, out last_rayhit, range))
        {
 
             if (last_rayhit.collider.tag == "swappable")
             {
                 myObjectB = last_rayhit.transform;
                Objectb.transform.position = myObjectB.transform.position;
 
                 return Objectb; // return the transform position of object 2
             }
 
 
         }
         else
         { }
 
         return null;
     }
 
 
 

     private void SwapWith()
     {
         Vector3 tempPosition = myObjectA.position;
         myObjectA.position = Objectb.transform.position;
        Objectb.transform.position = tempPosition;
 
         if (audioclip != null)
         {
             AudioSource.PlayClipAtPoint(audioclip, transform.position);
        }
     }
 
     // Update is called once per frame
     void Update () {

          if (Input.GetMouseButtonDown(0))
         {
             if (GetClickedGameObject() != null)
             {
                 Debug.Log("Its a hit");
                 SwapWith();
             }
         }
     }
 }

Try using this at SwapWith():

Vector3 ControllerPos = transform.position;
Vector3 TargetPos = [YourSwapObject].transform.position;
transform.position = TargetPos;
[YourSwapObject].transform.position = ControllerPos;

[YourSwapObject] is the object to swap the position with.