transform position and rotation of instantiated object

I’m having a dickens of a time with this code. While this code does what I want with a game object already in the scene at start, I don’t know how to do it when I instantiate a prefab. Another goal is to destroy that clone on GetButtonUp(“Fire1”).

My goal is to have the clone follow the ray cast found hit exactly how blink pin would with a game object already in scene at start.

using UnityEngine;
using System.Collections;

public class Blink : MonoBehaviour {
	
	public GameObject blinkPin;
	public float maxDistance = 10f;
	
	public static Transform cam;

	Vector3 camPos;
	bool summonedPin = false;
	
	
	// Use this for initialization
	void Start () {
	


		cam = Camera.main.transform;
	}
	
	// Update is called once per frame
	void Update () {
	

		bool foundHit = false;
	
		RaycastHit hit = new RaycastHit ();
		// new RaycastHit ();

		//add camera local transform
		camPos = GameObject.FindWithTag ("Player").transform.Find ("Main Camera").transform.TransformPoint (0,0, maxDistance);



		if (Input.GetButton ("Fire1"))
		{
			foundHit = Physics.Raycast ((transform.position + new Vector3 (0,0,0)), cam.forward, out hit, maxDistance);
		}

		if (foundHit)
		{
			Vector3 posPin = hit.point;
			Quaternion rotPin = Quaternion.LookRotation (hit.normal);


			if (!summonedPin)
			{

				GameObject newPin = Instantiate (blinkPin, posPin, rotPin) as GameObject;

				//why does this part not work?
				newPin.transform.position = hit.point;
				newPin.transform.rotation = Quaternion.LookRotation (hit.normal);
				summonedPin = true;
			}

			//if already in scene from start.
			//blinkPin.transform.position = hit.point;
			//blinkPin.transform.rotation = Quaternion.LookRotation (hit.normal);
		}

		if (!foundHit && Input.GetButton ("Fire1"))
		{
			//make sure to change child cube to 0 0 0 here, and back to original in first if


			blinkPin.transform.position = camPos;
			blinkPin.transform.rotation = transform.rotation * (Quaternion.Euler (-90, 0, 0));

			//spins master
			//master.Rotate (Vector3.up, Space.World);
		}



	}



}

@MrBalin

Hi, i am sry i have never used rays before, but i have created a simple program that Instantiate’s a prefab and than moves it around (it follows some other game object). I hope this will help u. Feel free to say if i forgot anything or made a mistake. (I hope i didn’t do any mistake in the code)

Transform spawnedPrefab;

GameObject theObjectWeAreGoingToMove;
public GameObject prefabToInstantiate;
public GameObject objectToFollow;

  void Start () {

     handWepon = Instantiate (prefabToInstantiate, objectToFollow.transform.position, objectToFollow.transform.rotation) as Transform;
// In the line above we instaniate the prefab at the position of the object we want to follow.

     theObjectWeAreGoingToMove= GameObject.Find (prefabToInstantiate(Clone));
//In the line above we find the instantiated prefab in the actual game. 
//Till now u tried to move instantiated prefab that only existed in source code.
//To find the clone that appeared in the game u have to know its exact name!!!
}

  void Update () {
      theObjectWeAreGoingToMove.transform.position = objectToFollow.transform.position;
      theObjectWeAreGoingToMove.transform.rotation= objectToFollow.transform.rotation;
 // In update we only need to move the object that we faund before.
 }

I think the part with finding the object in the actual game will save your problems (btw the instanteated object in the game always has name of prefab u instanteated + (Clone) at the end so… instanteatedPrefab(Clone) for instance).

I think that when u find that Clone (Instaneated prefab) in the game u can also destroy it. (Tell me if i am wrong and I’ll try to find how to destroy the Clone as well).