Erros nesse script
5 participantes
Página 1 de 1
Erros nesse script
Heae boa tarde amigos estou com uns erros nesse script que nao consegui ajeitar ?
Mostra erros na linha 29 e 30
Mostra erros na linha 29 e 30
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(AudioSource))]
public class Multiplicador : MonoBehaviour {
public Transform[] spawnPoints;
public GameObject[] zumbiePrefabs;
public int amountzumbie = 5;
public float yieldTimeMin = 2;
public float yieldTimeMax = 5;
// Use this for initialization
void Start () {
Spawn();
}
// Update is called once per frame
IEnumerator Spawn(){
for ( int i = 0; i<amountzumbie; i++) // Quantos inimigos para instanciar total.
{
yield return new WaitForSeconds(Random.Range(yieldTimeMin, yieldTimeMax)); // Quanto tempo esperar antes que outro inimigo seja instanciado.
GameObject obj = zmbiePrefabs[Random.Range(0, zumbiePrefabs.length)]; // Randomize os diferentes inimigos para instanciar.
Transform pos = spawnPoints[Random.Range(0, spawnPoints.length)]; // Randomize o spawnPoints para instanciar o inimigo no próximo.
Instantiate(obj, pos.position, pos.rotation);
}
}
}
Re: Erros nesse script
Callyde Jr escreveu:Heae boa tarde amigos estou com uns erros nesse script que nao consegui ajeitar ?
Mostra erros na linha 29 e 30
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(AudioSource))]
public class Multiplicador : MonoBehaviour {
public Transform[] spawnPoints;
public GameObject[] zumbiePrefabs;
public int amountzumbie = 5;
public float yieldTimeMin = 2;
public float yieldTimeMax = 5;
// Use this for initialization
void Start () {
Spawn();
}
// Update is called once per frame
IEnumerator Spawn(){
for ( int i = 0; i<amountzumbie; i++) // Quantos inimigos para instanciar total.
{
yield return new WaitForSeconds(Random.Range(yieldTimeMin, yieldTimeMax)); // Quanto tempo esperar antes que outro inimigo seja instanciado.
GameObject obj = zmbiePrefabs[Random.Range(0, zumbiePrefabs.length)]; // Randomize os diferentes inimigos para instanciar.
Transform pos = spawnPoints[Random.Range(0, spawnPoints.length)]; // Randomize o spawnPoints para instanciar o inimigo no próximo.
Instantiate(obj, pos.position, pos.rotation);
}
}
}
provavelmente isso, erro de indexofrange:
- Código:
zumbiePrefabs.length
o certo é:
- Código:
zumbiePrefabs.length - 1
pois o array começa do 0 e não do 1, e Length te da quantos itens tem no array, tipo se tem 10, é de 0 a 9, então Length -1.
Re: Erros nesse script
Mesmo com - 1 ele esta mostrando o mesmo erro
- Código:
Assets/Arquivos/Scripts/Multiplicador.cs(31,64): error CS1061: Type `UnityEngine.GameObject[]' does not contain a definition for `length' and no extension method `length' of type `UnityEngine.GameObject[]' could be found. Are you missing an assembly reference?
Assets/Arquivos/Scripts/Multiplicador.cs(32,64): error CS1061: Type `UnityEngine.Transform[]' does not contain a definition for `length' and no extension method `length' of type `UnityEngine.Transform[]' could be found. Are you missing an assembly reference?
Re: Erros nesse script
Não seria porque você digitou ".lenght" com "l" minúsculo e o certo seria ".Lenght".
MiguelLuiz- Programador
- PONTOS : 3086
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Erros nesse script
* ".Length"MiguelLuiz escreveu:Não seria porque você digitou ".lenght" com "l" minúsculo e o certo seria ".Lenght".
MiguelLuiz- Programador
- PONTOS : 3086
REPUTAÇÃO : 10
Idade : 21
Áreas de atuação : Programação C#(Intermediário), Modelagem com Blender (Iniciante - Intermediário).
Respeito as regras :
Re: Erros nesse script
Cara nao tinha visto isso resolvendo uns pobleminhas aqui nao deu para ver isso muito obrigado esta resolvido
Re: Erros nesse script
Pra inicirar um Coroutine voce precisa usar StartCoroutine, então no seu Start use:
- Código:
StartCoroutine(Spawn());
Re: Erros nesse script
Funcionou obrigado
Coloquei na função Start e funcionou OK no Update ele multiplicou demais da quantidade
Estou tentando colocar um ativador para ativalo só quando eu quizer
Ex: liberar= true;
Mais no start não funciona, no update funciona mais multiplica demais?
Coloquei na função Start e funcionou OK no Update ele multiplicou demais da quantidade
Estou tentando colocar um ativador para ativalo só quando eu quizer
Ex: liberar= true;
Mais no start não funciona, no update funciona mais multiplica demais?
Re: Erros nesse script
Então não é recomendado usar coroutines no Update, o que voce pode fazer é criar um metodo publico que execute o StartCoroutine quando for necessario.
Mas como voce esta tentando usar no Update significa que voce quer um numero constante de zombie certo? Se sim voce poderia usar um laço while pra que a coroutine sempre se execute "infinitamente". Ou então sempre que o numero de zombie se reduzir voce reexecuta a coroutine.
Exemplo:
- Código:
public void StartZombieSpawn(){
StartCoroutine(Spawn());
}
Mas como voce esta tentando usar no Update significa que voce quer um numero constante de zombie certo? Se sim voce poderia usar um laço while pra que a coroutine sempre se execute "infinitamente". Ou então sempre que o numero de zombie se reduzir voce reexecuta a coroutine.
Exemplo:
- Código:
private int aliveZombie = 0; // Variavel para contar numero de zombie atual
IEnumerator Spawn(){
for ( int i = aliveZombie; i<amountzumbie; i++) // Quantos inimigos para instanciar total.
{
yield return new WaitForSeconds(Random.Range(yieldTimeMin, yieldTimeMax)); // Quanto tempo esperar antes que outro inimigo seja instanciado.
GameObject obj = zmbiePrefabs[Random.Range(0, zumbiePrefabs.length)]; // Randomize os diferentes inimigos para instanciar.
Transform pos = spawnPoints[Random.Range(0, spawnPoints.length)]; // Randomize o spawnPoints para instanciar o inimigo no próximo.
Instantiate(obj, pos.position, pos.rotation);
aliveZombie++;
}
}
// ESSE METODO PRECISA SER CHAMADO QUANDO UM ZOMBIE MORRER
// PARA ENTAO SPAWNAR MAIS ZOMBIE E MANTER O FLUXO
public void ZombieDie(){
aliveZombie--;
StartCoroutine(Spawn());
}
Re: Erros nesse script
Eu estou tentando fazer assim quando eu ativar uma alavanca em um local para liberar a porta da saida ele ativa esse sistema para quando o player chegar ao centro do mapa esteja cheio de zumbies
O script de ativar eu ja tenho mais e esse que nao esta funcionando.
Muito obrigado pela ajuda de voces
O script de ativar eu ja tenho mais e esse que nao esta funcionando.
Muito obrigado pela ajuda de voces
Re: Erros nesse script
Coloquei assim para nao instanciar infinitamente.
- Código:
void Update () {
Invok = libertar;
if(libertar == true){
ativacao();
}
}
void ativacao(){
StartCoroutine(Spawn());
}
IEnumerator Spawn(){
for ( int i = 0; i<amountZumbie; i++) // Quantos inimigos para instanciar total.
{
yield return new WaitForSeconds(Random.Range(yieldTimeMin, yieldTimeMax)); // Quanto tempo esperar antes que outro inimigo seja instanciado.
GameObject obj = ZumbiePrefabs[Random.Range(0,ZumbiePrefabs.Length)]; // Randomize os diferentes inimigos para instanciar.
Transform pos = spawnPoints[Random.Range(0, spawnPoints.Length)]; // Randomize o spawnPoints para instanciar o inimigo no próximo.
Instantiate(obj, pos.position, pos.rotation);
yield return new WaitForSeconds (1);//contar e destroir o objeto
Destroy (gameObject);
}
}
}
Re: Erros nesse script
mas tu ta chamando no Update... Então vai ficar chamando a corrotina o tempo todo.
Tem que deixar aquela variável booleana falsa logo depois de chamar a corrotina, pra evita que fique dando loop infinito.
Tem que deixar aquela variável booleana falsa logo depois de chamar a corrotina, pra evita que fique dando loop infinito.
Re: Erros nesse script
Obrigado Marcos, o sistema que estou fazendo e de como eu chegar a uma porta fechada e destrancala ele ative esse spawns dos inimigos.
Devo colocar abaixo para desativar-la?
EX;
Devo colocar abaixo para desativar-la?
EX;
- Código:
IEnumerator Spawn(){
for ( int i = aliveZombie; i<amountzumbie; i++) // Quantos inimigos para instanciar total.
{
yield return new WaitForSeconds(Random.Range(yieldTimeMin, yieldTimeMax)); // Quanto tempo esperar antes que outro inimigo seja instanciado.
GameObject obj = zmbiePrefabs[Random.Range(0, zumbiePrefabs.length)]; // Randomize os diferentes inimigos para instanciar.
Transform pos = spawnPoints[Random.Range(0, spawnPoints.length)]; // Randomize o spawnPoints para instanciar o inimigo no próximo.
Instantiate(obj, pos.position, pos.rotation);
aliveZombie++;
liberar= false;
}
Re: Erros nesse script
Tinha feito errado, agora sim coloquei na funçao que chamei a corrotina,
- Código:
void ativacao(){
liberar= false;
StartCoroutine(Spawn());
}
Tópicos semelhantes
» Erros nesse script?
» Como posso setar o valor nesse script?
» oque eu tenho que colocar nesse script?
» [Resolvido]Problema nesse pequeno script
» Erros do Script
» Como posso setar o valor nesse script?
» oque eu tenho que colocar nesse script?
» [Resolvido]Problema nesse pequeno script
» Erros do Script
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos