[RESOLVIDO] Bug Da Unity ?
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Bug Da Unity ?
Estou com o seguinte problema, meu jogo funciona perfeitamente quando dou play na Unity, porém quando compilo jogo tudo fica tudo bugado. Sei que quando a Unity compila ela arruma algumas coisas e talvez por conta de algum erro da esses bugs, alguém saberia aonde está o erro no meu script ou se é realmente um bug na Unity ?.
Aqui tem um link com a build da Unity e o vídeo de como ele realmente deveria funcionar:
https://drive.google.com/file/d/1BdDMj-MH-iWHxitonRLtQ4ylytYOSlB0/view?usp=sharing
Obrigado pela atenção !.
Aqui tem um link com a build da Unity e o vídeo de como ele realmente deveria funcionar:
https://drive.google.com/file/d/1BdDMj-MH-iWHxitonRLtQ4ylytYOSlB0/view?usp=sharing
Obrigado pela atenção !.
QueriaStarMorto- Avançado
- PONTOS : 2349
REPUTAÇÃO : 19
Respeito as regras :
Re: [RESOLVIDO] Bug Da Unity ?
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Player : MonoBehaviour {
//Variaveis de controle de força/velocidade
public float speed;
public float forceJump;
//Componentes do Player
private Rigidbody2D rb;
private Animator anim;
private Transform playerTransform;
private float inputHorizontal;
private float inputVertical;
//Controle De Estados
private bool isAlive = true;
private bool invunerable = false;
private bool face;
//Variaveis Do Pulo
private bool isJumping;
private bool Grounded;
public float raio;
public Transform checkgroud;
public LayerMask layerGround;
//Variaveis Do Tiro
public GameObject bullet;
public Transform bulletSpawn;
private float timerBullet;
public float timeBtwBullet;
//Variaveis armas
private bool arma00 = true;
private bool arma01 = false;
private bool arma02 = false;
private bool arma03 = false;
void Start ()
{
rb = GetComponent<Rigidbody2D> ();
anim = GetComponent<Animator> ();
playerTransform = GetComponent<Transform> ();
}
// Update is called once per frame
void Update ()
{
if(Input.GetKeyDown(KeyCode.R))
{
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
Grounded = Physics2D.OverlapCircle (checkgroud.position, raio, layerGround);
if (isAlive)
{
if (timerBullet <= 0)
{
if (Input.GetMouseButtonDown (0))
{
GameObject cloneBullet = Instantiate (bullet, bulletSpawn.position, bulletSpawn.rotation);
timerBullet = timeBtwBullet;
trocaDeArmas ();
if (face)
{
cloneBullet.transform.eulerAngles = new Vector3 (0, 0, 180);
}
}
}
else
{
timerBullet -= Time.deltaTime;
}
}
if (Input.GetButtonDown ("Jump") && Grounded == true)
{
if (isAlive)
{
isJumping = true;
}
}
}
void FixedUpdate()
{
if (isAlive)
{
inputHorizontal = Input.GetAxisRaw ("Horizontal");
anim.SetFloat ("Speed", Mathf.Abs (inputHorizontal));
rb.velocity = new Vector2 (inputHorizontal * speed, rb.velocity.y);
if (isJumping)
{
rb.AddForce (new Vector2 (0f, forceJump));
isJumping = false;
}
anim.SetBool ("JumpFall", rb.velocity.y != 0f);
if ((inputHorizontal < 0) && !face || (inputHorizontal > 0 && face))
{
Flip ();
}
}
else
{
rb.velocity = new Vector2 (0, rb.velocity.y);
}
}
void Flip()
{
face = !face;
Vector3 scala = playerTransform.localScale;
scala.x *= -1;
playerTransform.localScale = scala;
}
void OnTriggerEnter2D(Collider2D col)
{
if (col.CompareTag ("Gun00"))
{
if (Input.GetKeyDown (KeyCode.E))
{
Debug.Log ("Foi");
arma01 = false;
arma00 = true;
Destroy (col.gameObject);
}
}
if (col.CompareTag ("Gun01"))
{
if (Input.GetKeyDown (KeyCode.E))
{
Debug.Log ("Não foi");
arma00 = false;
arma01 = true;
Destroy (col.gameObject);
}
}
}
void trocaDeArmas()
{
if (arma00 == true)
{
anim.SetTrigger ("Shoot");
Debug.Log ("Arma00");
}
if (arma01 == true)
{
//Coloca o nome da respectiva animação
anim.SetTrigger("Shoot01");
Debug.Log ("Arma01");
}
if (arma02 == true)
{
//Coloca o nome da respectiva animação
Debug.Log ("Arma02");
}
if (arma03 == true)
{
//Coloca o nome da respectiva animação
Debug.Log ("Arma03");
}
}
}
QueriaStarMorto- Avançado
- PONTOS : 2349
REPUTAÇÃO : 19
Respeito as regras :
Re: [RESOLVIDO] Bug Da Unity ?
QueriaStarMorto escreveu:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Player : MonoBehaviour {
//Variaveis de controle de força/velocidade
public float speed;
public float forceJump;
//Componentes do Player
private Rigidbody2D rb;
private Animator anim;
private Transform playerTransform;
private float inputHorizontal;
private float inputVertical;
//Controle De Estados
private bool isAlive = true;
private bool invunerable = false;
private bool face;
//Variaveis Do Pulo
private bool isJumping;
private bool Grounded;
public float raio;
public Transform checkgroud;
public LayerMask layerGround;
//Variaveis Do Tiro
public GameObject bullet;
public Transform bulletSpawn;
private float timerBullet;
public float timeBtwBullet;
//Variaveis armas
private bool arma00 = true;
private bool arma01 = false;
private bool arma02 = false;
private bool arma03 = false;
void Start ()
{
rb = GetComponent<Rigidbody2D> ();
anim = GetComponent<Animator> ();
playerTransform = GetComponent<Transform> ();
}
// Update is called once per frame
void Update ()
{
if(Input.GetKeyDown(KeyCode.R))
{
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
Grounded = Physics2D.OverlapCircle (checkgroud.position, raio, layerGround);
if (isAlive)
{
if (timerBullet <= 0)
{
if (Input.GetMouseButtonDown (0))
{
GameObject cloneBullet = Instantiate (bullet, bulletSpawn.position, bulletSpawn.rotation);
timerBullet = timeBtwBullet;
trocaDeArmas ();
if (face)
{
cloneBullet.transform.eulerAngles = new Vector3 (0, 0, 180);
}
}
}
else
{
timerBullet -= Time.deltaTime;
}
}
if (Input.GetButtonDown ("Jump") && Grounded == true)
{
if (isAlive)
{
isJumping = true;
}
}
}
void FixedUpdate()
{
if (isAlive)
{
inputHorizontal = Input.GetAxisRaw ("Horizontal");
anim.SetFloat ("Speed", Mathf.Abs (inputHorizontal));
rb.velocity = new Vector2 (inputHorizontal * speed, rb.velocity.y);
if (isJumping)
{
rb.AddForce (new Vector2 (0f, forceJump));
isJumping = false;
}
anim.SetBool ("JumpFall", rb.velocity.y != 0f);
if ((inputHorizontal < 0) && !face || (inputHorizontal > 0 && face))
{
Flip ();
}
}
else
{
rb.velocity = new Vector2 (0, rb.velocity.y);
}
}
void Flip()
{
face = !face;
Vector3 scala = playerTransform.localScale;
scala.x *= -1;
playerTransform.localScale = scala;
}
void OnTriggerEnter2D(Collider2D col)
{
if (col.CompareTag ("Gun00"))
{
if (Input.GetKeyDown (KeyCode.E))
{
Debug.Log ("Foi");
arma01 = false;
arma00 = true;
Destroy (col.gameObject);
}
}
if (col.CompareTag ("Gun01"))
{
if (Input.GetKeyDown (KeyCode.E))
{
Debug.Log ("Não foi");
arma00 = false;
arma01 = true;
Destroy (col.gameObject);
}
}
}
void trocaDeArmas()
{
if (arma00 == true)
{
anim.SetTrigger ("Shoot");
Debug.Log ("Arma00");
}
if (arma01 == true)
{
//Coloca o nome da respectiva animação
anim.SetTrigger("Shoot01");
Debug.Log ("Arma01");
}
if (arma02 == true)
{
//Coloca o nome da respectiva animação
Debug.Log ("Arma02");
}
if (arma03 == true)
{
//Coloca o nome da respectiva animação
Debug.Log ("Arma03");
}
}
}
boa tarde ,se nao me engano OnTriggerEnter2D nao funciona junto com Inputs/teclas,entretanto não seria bem um bug ,seria um erro de logica, já tentou substituir o
- Código:
OnTriggerEnter2D(Collider2D col)
//por
OnTriggerStay2D(Collider2D col)
Re: [RESOLVIDO] Bug Da Unity ?
Na verdade o bug está acontecendo com o OnTriggerStay2D que funciona com teclas, mas que mesmo assim quando eu compilo buga ( o vídeo e a build estão com OnTriggerStay2D), é que depois do bug acabei mexendo pra tentar resolver e coloquei o OnTriggerEnter2D e acabei se esquecendo e mandando o script errado
QueriaStarMorto- Avançado
- PONTOS : 2349
REPUTAÇÃO : 19
Respeito as regras :
Re: [RESOLVIDO] Bug Da Unity ?
se voce fez tudo certo deveria funcionar, de fato poderia ser um bug, eu testei seu codigo com tag e tudo TriggerStay ,IsTrigger e funcionou tranquilo comigo no editor e no Exe,fiz com sprite normal huehue mais funcionou,seria bom vc dar uma revisada ,ou testar em outro projeto,ou voce pode upar seu projeto só ate essa parte,para darmos uma analizada,
boa tarde,
boa tarde,
Re: [RESOLVIDO] Bug Da Unity ?
Obrigado pela ajuda, acho que realmente devia ser um bug da Unity, talvez deva ter corrompido algum arquivo quando criei o projeto, por que criei outro projeto pra testar como você disse e agora funcionou perfeitamente com o mesmo código, tanto no editor como no exe
QueriaStarMorto- Avançado
- PONTOS : 2349
REPUTAÇÃO : 19
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO]UNITY NAO REPRODUZ AUDIO, problema do pc ou da unity?
» [RESOLVIDO] Unity - Reproduzir Videos Do Blender No Unity
» [RESOLVIDO] erro no unity
» [RESOLVIDO] Unity UI
» [RESOLVIDO] Unity sem som
» [RESOLVIDO] Unity - Reproduzir Videos Do Blender No Unity
» [RESOLVIDO] erro no unity
» [RESOLVIDO] Unity UI
» [RESOLVIDO] Unity sem som
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos