Assign a 'Transform' target to prefab by finding a 'GameObject'

I’ve read through other posts, and I know what needs to be done, I just can’t find a way to do it. I’m pretty new to unity and game programming in general.

I have a ‘Transform’ object that is being used to calculate prefabbed enemy’s angle of rotation and direction of travel. I can’t seem to find a way to assign the target through scripting.

enter code using UnityEngine;
using System.Collections;

public class seekTarget : MonoBehaviour {
	public Transform target;
	public float speed;
	public float moveSpeed;
	public float moveStep;
	public float range;
	public float distance;

	void Update() {

		Vector3 dir = target.position - transform.position;
		float angle = Mathf.Atan2(dir.y,dir.x) * Mathf.Rad2Deg;
		transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);

		float moveStep = moveSpeed * Time.deltaTime;
		distance = Vector3.Distance (target.position, transform.position);

		if (distance > range) 
			transform.position = Vector3.MoveTowards (transform.position, target.position, moveStep);



I’ve tried using the GameObject.FindGameObjectByTag("Player"); line, but when I try that it says I can’t convert from ‘Transform’ to ‘GameObject’

When I try to make the ‘target’ a ‘GameObject’ from the start, none of my vector functions will work.

I’ve tried explicitly typecasting as well, to no avail.

What am I missing?

If you are absolutely sure that at least one of the ‘Player’ tagged objects exist in the scene, you can do:

target = GameObject.FindGameObjectByTag("Player").transform;

Getting something by tag is efficient enough to do every frame, but if the ‘Player’ tagged object never changes to a new game object it would best to do the assignment in Start().

If there is a chance that the ‘Player’ game object will not exist, you can do:

GameObject go =  GameObject.FindGameObjectByTag("Player");
if (go != null) {
    target = go.transform;
else {
    target = null;

But if you need to handle this situation, you also need to handle target being null in the rest of your code.