Personagem invisivel
4 participantes
Página 1 de 1
Personagem invisivel
Bom dia, estou fazendo um jogo 2D e até então tudo tem dado certo, porem assim que terminei o script do inimigo (Que nasce no canto direito da tela, voa até o esquerdo e some) ele simplesmente ficou invisível.
Na tela do jogo ele não aparece porem na tela "Scene" sim, vou deixar o script caso alguem possa ajudar.
Grato desde já!
Esse spawna ele:
Esse da o movimento a ele:
Na tela do jogo ele não aparece porem na tela "Scene" sim, vou deixar o script caso alguem possa ajudar.
Grato desde já!
Esse spawna ele:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class spawninimigo : MonoBehaviour
{
public GameObject inimigo;
void Start()
{
StartCoroutine(spawnmonstro());
}
private void spawnar ()
{
GameObject a = Instantiate (inimigo) as GameObject;
inimigo.transform.position = transform.position + new Vector3 (25, Random.Range (-3.5f, 3.5f), 0);
}
IEnumerator spawnmonstro ()
{
while (true)
{
yield return new WaitForSeconds(Random.Range(5,10));
spawnar ();
}
}
void Update()
{
}
}
Esse da o movimento a ele:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class scriptinimigo : MonoBehaviour
{
public float velocidade = -0.90f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
transform.position = transform.position + new Vector3 (velocidade,0,0);
if (transform.position.x < -25)
Destroy (gameObject);
}
}
maxwarnava- Membro
- PONTOS : 1819
REPUTAÇÃO : 3
Respeito as regras :
Re: Personagem invisivel
Posso estar enganado, e talvez isso não tenha nada a ver com o problema, mas não sei se o Vector3 é usado em jogos 2D. Alguém com mais experiência pode esclarecer mais tarde.
Weverton Borges da Silva- Avançado
- PONTOS : 3131
REPUTAÇÃO : 49
Idade : 33
Respeito as regras :
Re: Personagem invisivel
De fato, não há problema em usar um Vector3, ele vai pegar apenas o X e o Y, mas é chato pois alguma coisa pode alterar o Z desse objeto causando problema.
O que eu percebi é que ele está tratando o inimigo como um objeto, mexendo no Transform e tal... O correto seria instanciar, definir o objeto como filho do canvas e alterar a posição via Rect Transform.
Não ficou muito claro pra mim como está organizado o jogo, se está sendo tudo 2d no canvas, ou se está usando uma câmera no mundo e colocando objetos comuns pra parecer 2D (pseudo 2d)
O que eu percebi é que ele está tratando o inimigo como um objeto, mexendo no Transform e tal... O correto seria instanciar, definir o objeto como filho do canvas e alterar a posição via Rect Transform.
Não ficou muito claro pra mim como está organizado o jogo, se está sendo tudo 2d no canvas, ou se está usando uma câmera no mundo e colocando objetos comuns pra parecer 2D (pseudo 2d)
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Personagem invisivel
Entendi, consegui fazer oq tu falou mas agora eu estou tentando entender como faço pra ele instanciar uns 5 prefabs e só instanciar outro caso um seja atingido pelo disparo
maxwarnava- Membro
- PONTOS : 1819
REPUTAÇÃO : 3
Respeito as regras :
Re: Personagem invisivel
Por exemplo, existe esse script:
Queria que quando eu clicasse (Vai ser alterado dps) ele voltasse ao ponto de partida, esperasse de 5 a 10 segundo e só então voasse pra frente, porem toda vez que ele volta pro ponto de partida ele pega o transform.position da void update e ignora o transform.position do if
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class scriptinimigo : MonoBehaviour
{
public float velocidade = 0.090f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
transform.position = transform.position + new Vector3 (velocidade,0,0);
if (transform.position.x < -35)
transform.position = new Vector3(25, Random.Range (-3.5f, 3.5f), 0);
StartCoroutine(reespawnar());
IEnumerator reespawnar ()
{
if (Input.GetMouseButtonDown(0))
{
transform.position = new Vector3(25, Random.Range (-3.5f, 3.5f), 0);
yield return new WaitForSeconds(Random.Range(5,10));
transform.position = transform.position + new Vector3 (velocidade,0,0);
}
}
}
}
Queria que quando eu clicasse (Vai ser alterado dps) ele voltasse ao ponto de partida, esperasse de 5 a 10 segundo e só então voasse pra frente, porem toda vez que ele volta pro ponto de partida ele pega o transform.position da void update e ignora o transform.position do if
maxwarnava- Membro
- PONTOS : 1819
REPUTAÇÃO : 3
Respeito as regras :
Re: Personagem invisivel
Tente isso:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class scriptinimigo : MonoBehaviour {
public float velocidade = 0.090f;
bool podeMover = true;
void Start() {
podeMover = true;
}
void Update() {
if (podeMover) {
transform.position = transform.position + new Vector3(velocidade, 0, 0);
}
if (transform.position.x < -35) {
transform.position = new Vector3(25, Random.Range(-3.5f, 3.5f), 0);
}
if (Input.GetMouseButtonDown(0)) {
StartCoroutine("reespawnar");
}
}
IEnumerator reespawnar() {
podeMover = false;
transform.position = new Vector3(25, Random.Range(-3.5f, 3.5f), 0);
yield return new WaitForSeconds(Random.Range(5, 10));
transform.position = transform.position + new Vector3(velocidade, 0, 0);
podeMover = true;
}
}
Re: Personagem invisivel
Funcionou, muito obrigado!
maxwarnava- Membro
- PONTOS : 1819
REPUTAÇÃO : 3
Respeito as regras :
Tópicos semelhantes
» Personagem da AS, animações do mixamo dão erro ao usar avatar do personagem.
» [Asset - Personagem ] Personagem para download - FBX.
» Background invisivel
» Interios Do Modelo Invisivel
» Bug com modelo ficando invisível
» [Asset - Personagem ] Personagem para download - FBX.
» Background invisivel
» Interios Do Modelo Invisivel
» Bug com modelo ficando invisível
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos