Question by
GeovaneUnity54 · Apr 22 at 10:30 PM ·
missingreferenceexception
MissingReferenceException: The object of type 'SpriteRenderer' has been destroyed but you are still trying to access it.
Guys, an error is appearing here in my game that I can't solve:
MissingReferenceException: The object of type 'SpriteRenderer' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. UnityEngine.SpriteRenderer.set_color(UnityEngine.Color value) (at :0) LocalDano+d__14.MoveNext() (at Assets/Scripts/LocalDano.cs:75) UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at :0)
I've already put if(character != null) in all possible places, but it's still giving an error.
What do I do?
Aqui está o código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class LocalDano : MonoBehaviour
{
public Transform Inimigo;
public float vel = 100000.0f;
public int dano1 = 1;
public float fireRate = 0.5f;
private float nextAttack;
private VidaPlayer vp;
public GameObject personagem;
private InimigoVida iv;
public GameObject inimigo;
private VidaPlayer s;
public GameObject p;
void Start()
{
if(personagem != null)
{
vp = personagem.GetComponent<VidaPlayer>();
vp.valorAtual = 3;
vp.Vivo = true;
s = p.GetComponent<VidaPlayer>();
iv = inimigo.GetComponent<InimigoVida>();
}
}
// Update is called once per frame
void Update()
{
if(inimigo != null)
{
transform.position = Vector2.MoveTowards(this.transform.position, Inimigo.transform.position, vel * Time.deltaTime);
}
}
void OnTriggerStay2D(Collider2D outro)
{
if(outro.gameObject.CompareTag("Player"))
{
if(Time.time > nextAttack && vp.valorAtual > 0)
{
vp.valorAtual -= dano1;
nextAttack = Time.time + fireRate;
if(personagem != null)
{
StartCoroutine("ColorDano");
}
}
}
if(iv.Vivo == false)
{
Destroy(gameObject);
}
}
IEnumerator ColorDano()
{
s.sprite.color = new Color(8490566f, 0.8370417f, 0.8370417f, 1f);
yield return new WaitForSeconds(0.2f);
s.sprite.color = new Color(1f, 1f, 1f, 1f);
}
}
Comment