Enabling or adding a Renderer during rendering; this is not allowed
3 participantes
Página 1 de 1
Enabling or adding a Renderer during rendering; this is not allowed
People, Eu estava fazendo no Unity um jogo tipo o slender. o script funcionava normal na Unity 5.5.3. até eu atualizei meu Unity para a versão 5.6 começou a dar esse erro: Enabling or adding a Renderer during rendering; this is not allowed. Renderer 'MeshDoGato' will not be added.
UnityEngine.Renderer:set_enabled(Boolean)
NovoScriptDoGatoAssasino:OnBecameInvisible() (at Assets/Scripts/NovoScriptDoGatoAssasino.cs:131)
Aqui Está o script:
UnityEngine.Renderer:set_enabled(Boolean)
NovoScriptDoGatoAssasino:OnBecameInvisible() (at Assets/Scripts/NovoScriptDoGatoAssasino.cs:131)
Aqui Está o script:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityStandardAssets.ImageEffects;
using UnityEngine.Rendering;
[RequireComponent(typeof(AudioSource))]
public class NovoScriptDoGatoAssasino : MonoBehaviour {
private GameController Jogador;
public VignetteAndChromaticAberration EscurecerTela;
public float DistanciaMinimaParaSpawnar;
public float DistanciaMaximaParaSpawnar;
public float CurrentTimeParaSpawnar;
public Renderer MeshDoGatoAssassino;
public bool Spawnado;
public float DanoNaSanidade;
public float DistanceOfPlayer;
public float DistanceToAttack;
public float TempoPraSpawnar;
[Space(30)]
public AudioSource Chiado;
public AudioSource SuporteASons;
public AudioSource SonsDoGato;
public AudioClip Susto;
public AudioClip Miado;
[Space(20)]
public Image TelaFerida1;
public Image TelaFerida2;
public bool EstaVendo;
// Use this for initialization
void Awake () {
Jogador = FindObjectOfType (typeof(GameController)) as GameController;
MeshDoGatoAssassino.enabled = false;
}
// Update is called once per frame
void Update () {
if (MeshDoGatoAssassino.isVisible == true) {
EstaVendo = true;
}else{
if (MeshDoGatoAssassino.isVisible == false) {
EstaVendo = false;
}
}
Chiado.volume = Jogador.Sanity;
transform.LookAt (Jogador.transform);
CurrentTimeParaSpawnar += Time.deltaTime;
if (CurrentTimeParaSpawnar > TempoPraSpawnar && Jogador.PagesColected != 0) {
CurrentTimeParaSpawnar = 0;
Spawn ();
}
DistanceOfPlayer = Vector3.Distance (transform.position, Jogador.transform.position);
Vector3 fwd = transform.TransformDirection (Vector3.forward);
Ray tempRay = new Ray (transform.position+new Vector3(0, transform.localScale.y/1,0), fwd);
bool RayCastFail = true;
RaycastHit hitInfo;
Debug.DrawRay (transform.position+new Vector3(0, transform.localScale.y/1,0), fwd);
if (Physics.Raycast (tempRay, out hitInfo)) {
if (hitInfo.collider.tag == ("Player")) {
RayCastFail = false;
}
}
if (DistanceOfPlayer < DistanceToAttack && MeshDoGatoAssassino.isVisible && RayCastFail == false) {
Jogador.Sanity += DanoNaSanidade;
} else {
Jogador.Sanity -= Jogador.RecoverySanity;
if (Jogador.Sanity < 0) {
Jogador.Sanity = 0;
}
}
if (DistanceOfPlayer <= 11 && MeshDoGatoAssassino.isVisible && RayCastFail == false) {
if (GetComponent<AudioSource> ().isPlaying == false) {
StartCoroutine ("SairTelaEnsaguentada");
Jogador.Character.movement.maxForwardSpeed = 1.7f;
Jogador.Character.movement.maxBackwardsSpeed = 1.7f;
Jogador.Character.movement.maxSidewaysSpeed = 1.7f;
TelaFerida1.enabled = true;
TelaFerida2.enabled = true;
GetComponent<AudioSource> ().PlayOneShot (Susto);
} else {
}
if (DistanceOfPlayer <= 5 && MeshDoGatoAssassino.isVisible && RayCastFail == false) {
if (SuporteASons.isPlaying == false) {
SuporteASons.PlayOneShot (Miado);
} else {
}
}
}
}
public void Spawn(){
if(EstaVendo == true || Jogador.Sanity > 1.02f){
} else {
MeshDoGatoAssassino.enabled = false;
Vector3 PositionToGo = Jogador.transform.position;
PositionToGo.x += Random.Range (DistanciaMinimaParaSpawnar,DistanciaMaximaParaSpawnar);
PositionToGo.z += Random.Range (DistanciaMinimaParaSpawnar, DistanciaMaximaParaSpawnar);
transform.position = PositionToGo;
Spawnado = true;
}
}
void OnBecameInvisible (){
if (Spawnado) {
MeshDoGatoAssassino.enabled = true;
Spawnado = false;
}
}
IEnumerator SairTelaEnsaguentada(){
yield return new WaitForSeconds (7.040f);
TelaFerida1.enabled = false;
TelaFerida2.enabled = false;
Jogador.Character.movement.maxForwardSpeed = 1.2f;
Jogador.Character.movement.maxBackwardsSpeed = 1.2f;
Jogador.Character.movement.maxSidewaysSpeed = 1.2f;
}
}
GamersBR- Membro
- PONTOS : 3147
REPUTAÇÃO : 3
Respeito as regras :
Re: Enabling or adding a Renderer during rendering; this is not allowed
Bom dia cara! putz, com certeza é algum esquema que a nova versão não está aceitando dessa forma, dá uma olhada com calma aqui: https://forum.unity3d.com/threads/enabling-or-adding-a-renderer-during-rendering.457710/ tem uma galera com o mesmo problema, a maioria tá voltando para a 5.5.GamersBR escreveu:People, Eu estava fazendo no Unity um jogo tipo o slender. o script funcionava normal na Unity 5.5.3. até eu atualizei meu Unity para a versão 5.6 começou a dar esse erro: Enabling or adding a Renderer during rendering; this is not allowed. Renderer 'MeshDoGato' will not be added.
UnityEngine.Renderer:set_enabled(Boolean)
NovoScriptDoGatoAssasino:OnBecameInvisible() (at Assets/Scripts/NovoScriptDoGatoAssasino.cs:131)
Aqui Está o script:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityStandardAssets.ImageEffects;
using UnityEngine.Rendering;
[RequireComponent(typeof(AudioSource))]
public class NovoScriptDoGatoAssasino : MonoBehaviour {
private GameController Jogador;
public VignetteAndChromaticAberration EscurecerTela;
public float DistanciaMinimaParaSpawnar;
public float DistanciaMaximaParaSpawnar;
public float CurrentTimeParaSpawnar;
public Renderer MeshDoGatoAssassino;
public bool Spawnado;
public float DanoNaSanidade;
public float DistanceOfPlayer;
public float DistanceToAttack;
public float TempoPraSpawnar;
[Space(30)]
public AudioSource Chiado;
public AudioSource SuporteASons;
public AudioSource SonsDoGato;
public AudioClip Susto;
public AudioClip Miado;
[Space(20)]
public Image TelaFerida1;
public Image TelaFerida2;
public bool EstaVendo;
// Use this for initialization
void Awake () {
Jogador = FindObjectOfType (typeof(GameController)) as GameController;
MeshDoGatoAssassino.enabled = false;
}
// Update is called once per frame
void Update () {
if (MeshDoGatoAssassino.isVisible == true) {
EstaVendo = true;
}else{
if (MeshDoGatoAssassino.isVisible == false) {
EstaVendo = false;
}
}
Chiado.volume = Jogador.Sanity;
transform.LookAt (Jogador.transform);
CurrentTimeParaSpawnar += Time.deltaTime;
if (CurrentTimeParaSpawnar > TempoPraSpawnar && Jogador.PagesColected != 0) {
CurrentTimeParaSpawnar = 0;
Spawn ();
}
DistanceOfPlayer = Vector3.Distance (transform.position, Jogador.transform.position);
Vector3 fwd = transform.TransformDirection (Vector3.forward);
Ray tempRay = new Ray (transform.position+new Vector3(0, transform.localScale.y/1,0), fwd);
bool RayCastFail = true;
RaycastHit hitInfo;
Debug.DrawRay (transform.position+new Vector3(0, transform.localScale.y/1,0), fwd);
if (Physics.Raycast (tempRay, out hitInfo)) {
if (hitInfo.collider.tag == ("Player")) {
RayCastFail = false;
}
}
if (DistanceOfPlayer < DistanceToAttack && MeshDoGatoAssassino.isVisible && RayCastFail == false) {
Jogador.Sanity += DanoNaSanidade;
} else {
Jogador.Sanity -= Jogador.RecoverySanity;
if (Jogador.Sanity < 0) {
Jogador.Sanity = 0;
}
}
if (DistanceOfPlayer <= 11 && MeshDoGatoAssassino.isVisible && RayCastFail == false) {
if (GetComponent<AudioSource> ().isPlaying == false) {
StartCoroutine ("SairTelaEnsaguentada");
Jogador.Character.movement.maxForwardSpeed = 1.7f;
Jogador.Character.movement.maxBackwardsSpeed = 1.7f;
Jogador.Character.movement.maxSidewaysSpeed = 1.7f;
TelaFerida1.enabled = true;
TelaFerida2.enabled = true;
GetComponent<AudioSource> ().PlayOneShot (Susto);
} else {
}
if (DistanceOfPlayer <= 5 && MeshDoGatoAssassino.isVisible && RayCastFail == false) {
if (SuporteASons.isPlaying == false) {
SuporteASons.PlayOneShot (Miado);
} else {
}
}
}
}
public void Spawn(){
if(EstaVendo == true || Jogador.Sanity > 1.02f){
} else {
MeshDoGatoAssassino.enabled = false;
Vector3 PositionToGo = Jogador.transform.position;
PositionToGo.x += Random.Range (DistanciaMinimaParaSpawnar,DistanciaMaximaParaSpawnar);
PositionToGo.z += Random.Range (DistanciaMinimaParaSpawnar, DistanciaMaximaParaSpawnar);
transform.position = PositionToGo;
Spawnado = true;
}
}
void OnBecameInvisible (){
if (Spawnado) {
MeshDoGatoAssassino.enabled = true;
Spawnado = false;
}
}
IEnumerator SairTelaEnsaguentada(){
yield return new WaitForSeconds (7.040f);
TelaFerida1.enabled = false;
TelaFerida2.enabled = false;
Jogador.Character.movement.maxForwardSpeed = 1.2f;
Jogador.Character.movement.maxBackwardsSpeed = 1.2f;
Jogador.Character.movement.maxSidewaysSpeed = 1.2f;
}
}
Abraço!
Re: Enabling or adding a Renderer during rendering; this is not allowed
Pois é man. eu já vi esse tópico deles. O Jeito é esperar que a Unity corriga isso né kkkkk
GamersBR- Membro
- PONTOS : 3147
REPUTAÇÃO : 3
Respeito as regras :
Re: Enabling or adding a Renderer during rendering; this is not allowed
sim brow, ou use a 5.5, pois essa nova ai, vai dar um pouco de dor de cabeça ainda.GamersBR escreveu:Pois é man. eu já vi esse tópico deles. O Jeito é esperar que a Unity corriga isso né kkkkk
Abraço!
Re: Enabling or adding a Renderer during rendering; this is not allowed
faz o seguinte... em vez de linkar a mesh, faz uma variável do tipo GameObject e usa GetComponent... nunca da erro.
Ou usa SetActive se pa
Ou usa SetActive se pa
Tópicos semelhantes
» Control characters are not allowed] at line 0
» [Dúvida]Erro "Building to the assets folder is not allowed" ao tentar fazer build
» Sprite Renderer
» Trail Renderer
» Sprite Renderer em canvas
» [Dúvida]Erro "Building to the assets folder is not allowed" ao tentar fazer build
» Sprite Renderer
» Trail Renderer
» Sprite Renderer em canvas
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos