- Home /
How to fix error CS0029: Cannot implicitly convert type `SpaceShooter_GameController' to `UnityEngine.GameObject'
Hi, I don't know how to fix this error. The problem text is in bold. Below the script code with the problem is the script that I believe the problem is trying to link to / reference...
Problem Script:
using UnityEngine;
using System.Collections;
public class SpaceShooter_DestoryByContact_Asteroid : MonoBehaviour
{
public GameObject explosion;
public GameObject playerExplosion;
public int scoreValue;
public SpaceShooter_GameController gameController;
void Start ()
{
GameObject gameControllerObject = GameObject.FindWithTag ("GameController");
if (gameControllerObject != null)
{
**gameControllerObject = gameControllerObject.GetComponent <SpaceShooter_GameController> ();**
}
if (gameController == null)
{
Debug.Log ("Cannot find 'SpaceShooter_GameController' script");
}
}
void OnTriggerEnter (Collider other)
{
if (other.tag == "Boundary_SpaceShooter")
{
return;
}
Instantiate(explosion, transform.position, transform.rotation);
if (other.tag == "Player") {
Instantiate (playerExplosion, other.transform.position, other.transform.rotation);
}
gameController.AddScore (scoreValue);
Destroy(other.gameObject);
Destroy(gameObject);
//not about below section
if (other.tag != "Player")
{
gameController.AddScore(scoreValue);
}
}
}
Script being referenced:
using UnityEngine; using System.Collections;
public class SpaceShooter_GameController : MonoBehaviour { public GameObject hazard; public Vector3 spawnValues; public int hazardCount; public float spawnWait; public float startWait; public float waveWait;
public GUIText scoreText;
public int score;
void Start ()
{
score = 0;
UpdateScore ();
StartCoroutine (SpawnWaves ());
}
IEnumerator SpawnWaves ()
{
yield return new WaitForSeconds (startWait);
while (true)
{
for (int i = 0; i < hazardCount; i++) {
Vector3 spawnPosition = new Vector3 (Random.Range (-spawnValues.x, spawnValues.x), spawnValues.y, spawnValues.z);
Quaternion spawnRotation = Quaternion.identity;
Instantiate (hazard, spawnPosition, spawnRotation);
yield return new WaitForSeconds (spawnWait);
}
yield return new WaitForSeconds (waveWait);
}
}
public void AddScore (int newScoreValue)
{
score += newScoreValue;
UpdateScore ();
}
void UpdateScore ()
{
scoreText.text = "Score:" + score;
}
}
Thanks for your help in advance. Cheers
Sincerely Sanguine
K
The exact problem is gameControllerObject = gameControllerObject.GetComponent ();
line 15 of the 1st script.
Thanks DoTA_$$anonymous$$A$$anonymous$$I$$anonymous$$ADzE!!!
Answer by DoTA_KAMIKADzE · Jul 13, 2015 at 12:00 AM
Script #1, Line#16 to:
gameController = gameControllerObject.GetComponent<SpaceShooter_GameController>();
You were just assigning the wrong variable.
Your answer
![](https://koobas.hobune.stream/wayback/20220611231029im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Im having trouble with this code. 1 Answer
Error that I can't find in my code 1 Answer
BCE0048 Error appears when switching platform but works when building for a PC? 0 Answers
error CS1525 unexpected symbol '}' 3 Answers
Why have error: NullReferenceException: Object reference not set to an instance of an object 1 Answer