Question by
james9201 · Jun 15, 2016 at 01:17 AM ·
error messagenewbienewlevel load
Error CS0019 line 72,27 operator '== cannot be applied to operands of type unityengine.gameobject and string
I have an error: Error CS0019 line 72,27 operator '== cannot be applied to operands of type unityengine.gameobject and string. Any help for this would be great. I urgently need help as my deadline is today. using UnityEngine.SceneManagement; using UnityEngine; using System.Collections;
public class SlimeController : MonoBehaviour {
public float moveSpeed;
private Rigidbody2D myRigidBody;
private bool moving;
public float timeBetweenMoves;
private float timeBetweenMoveCounter;
public float timeToMove;
private float timeToMoveCounter;
private Vector3 moveDirection;
public float waitToReload;
private bool reloading;
// Use this for initialization
void Start () {
myRigidBody = GetComponent<Rigidbody2D> ();
//timeBetweenMoveCounter = timeBetweenMoves;
//timeToMoveCounter = timeToMove;
timeBetweenMoveCounter = Random.Range (timeBetweenMoves * 0.50f, timeBetweenMoves * 2f);
timeToMoveCounter = Random.Range (timeToMove * 0.01f, timeToMove * 100f);
}
// Update is called once per frame
void Update () {
if (moving)
{
timeToMoveCounter -= Time.deltaTime;
myRigidBody.velocity = moveDirection;
if (timeToMoveCounter < 0f)
{
moving = false;
//timeBetweenMoveCounter = timeBetweenMoves;
timeBetweenMoveCounter = Random.Range (timeBetweenMoves * 0.50f, timeBetweenMoves * 2f);
}
} else {
timeBetweenMoveCounter -= Time.deltaTime;
myRigidBody.velocity = Vector2.zero;
if (timeBetweenMoveCounter < 0f)
{
moving = true;
//timeToMoveCounter = timeToMove;
timeToMoveCounter = Random.Range (timeToMove * 0.50f, timeToMove * 2f);
moveDirection = new Vector3 (Random.Range (-1f, 1f) * moveSpeed, Random.Range (-1f, 1f) * moveSpeed, 0f);
}
}
if (reloading == true) {
waitToReload -= Time.deltaTime;
if (waitToReload < 0) {
SceneManager.LoadScene (SceneManager.GetActiveScene ().buildIndex);
}
}
}
void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject == "Player")
{
//Destroy (other.gameobject));
other.gameObject.SetActive (false);
reloading = true;
}
}
}
Comment
Answer by jgodfrey · Jun 15, 2016 at 02:16 AM
So, the problem is here:
if (other.gameObject == "Player")
As the error states, you can't compare an object (gameObject) with a string ("Player"). You're probably after one of the string members of the gameObject. Likely, one of:
if (other.gameObject.name == "Player")
or
if (other.gameObject.tag == "Player")