Jogo funcionando corretamente apenas dentro da Unity
Página 1 de 1
Jogo funcionando corretamente apenas dentro da Unity
Eu possuo um GameManager que automaticamente seta a função de todos butões; atualiza os textos; e verifica coisas como ponto e poder dos times. Dentro da Unity ele funciona perfeitamente. Mas quando compilo para Android ele passa a não funcionar corretamente mais.
O jogo dentro do Android nada funcionando corretamente, por exemplo o Power que está como o padrão escrito direto do Canvas:
https://prntscr.com/jej8b6
O jogo funcionando dentro da Unity com tudo correto:
https://prntscr.com/jej8ax
E meu querido script que fiquei fazendo o dia inteiro ;-;
O jogo dentro do Android nada funcionando corretamente, por exemplo o Power que está como o padrão escrito direto do Canvas:
https://prntscr.com/jej8b6
O jogo funcionando dentro da Unity com tudo correto:
https://prntscr.com/jej8ax
E meu querido script que fiquei fazendo o dia inteiro ;-;
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class GameManager : MonoBehaviour {
private GameObject pCounter, eCounter, percentageCounter, back;
private int pGols, eGols;
private float percentage;
private int pPower, ePower, difference;
string temp;
private GameObject pUp, pDown, pPowerCounter,play;
private GameObject eUp, eDown, ePowerCounter;
private static GameManager GameManagerInstance;
private void Awake()
{
DontDestroyOnLoad(this);
if (GameManagerInstance == null)
{
GameManagerInstance = this;
}
else
{
Destroy(gameObject);
}
}
private void Start()
{
temp = SceneManager.GetActiveScene().name;
DontDestroyOnLoad(gameObject);
SetTags();
}
private void Update()
{
temp = SceneManager.GetActiveScene().name;
if (temp == "MainMenu")
{
PercentageCalculator();
CountersUpdater();
}
if(temp == "Game")
CountersUpdater();
}
private void OnLevelWasLoaded(int level)
{
temp = SceneManager.GetActiveScene().name;
print("wasLoaded");
SetTags();
}
private void CountersUpdater()
{
if (temp == "Game")
{
percentageCounter.GetComponent<Text>().text = "Percentage to Gol: " + percentage.ToString() + "%";
pCounter.GetComponent<Text>().text = pGols.ToString();
eCounter.GetComponent<Text>().text = eGols.ToString();
}else if(temp == "MainMenu")
{
percentageCounter.GetComponent<Text>().text = "Your Gol Chance: " + percentage.ToString() + "%";
pPowerCounter.GetComponent<Text>().text = "Power " + pPower;
ePowerCounter.GetComponent<Text>().text = "Power " + ePower;
}
}
public void PGolsIncrease()
{
float temp = Random.Range(0, 100);
if (temp <= percentage)
{
pGols++;
CountersUpdater();
}
}
public void EGolsIncrease()
{
eGols++;
CountersUpdater();
}
void BackButton()
{
GameObject.FindWithTag("Back").GetComponent<Button>().onClick.AddListener(BackButtonFunction);
}
private void BackButtonFunction()
{
print("back");
SceneManager.LoadScene(0);
}
private void PlayButtonFunction()
{
SceneManager.LoadScene(1);
}
private void PercentageCalculator()
{
difference = pPower - ePower;
if (difference == 0){
percentage = 4;
return;
}
if (difference > 0)
{
switch (difference)
{
case 1:
percentage = 5;
break;
case 2:
percentage = 6;
break;
case 3:
percentage = 8;
break;
case 4:
percentage = 10;
break;
case 5:
percentage = 20;
break;
}
}
else if (difference < 0)
{
switch (difference)
{
case -1:
percentage = 5;
break;
case -2:
percentage = 5;
break;
case -3:
percentage = 4;
break;
case -4:
percentage = 4;
break;
case -5:
percentage = 3;
break;
}
}
}
private void SetTags()
{
if (temp == "Game")
{
back = GameObject.FindWithTag("Back");
percentageCounter = GameObject.FindWithTag("PercentageCounter");
pCounter = GameObject.FindWithTag("PCounter");
eCounter = GameObject.FindWithTag("ECounter");
back.GetComponent<Button>().onClick.AddListener(BackButtonFunction);
}else if(temp == "MainMenu")
{
pDown = GameObject.FindWithTag("PDown");
pUp = GameObject.FindWithTag("PUp");
eUp = GameObject.FindWithTag("EUp");
eDown = GameObject.FindWithTag("EDown");
ePowerCounter = GameObject.FindWithTag("EPower");
play = GameObject.FindWithTag("Play");
pPowerCounter = GameObject.FindWithTag("PPower");
pUp.GetComponent<Button>().onClick.AddListener(PUP);
pDown.GetComponent<Button>().onClick.AddListener(PDOWN);
percentageCounter = GameObject.FindWithTag("PercentageCounter");
eUp.GetComponent<Button>().onClick.AddListener(EUP);
eDown.GetComponent<Button>().onClick.AddListener(EDOWN);
play.GetComponent<Button>().onClick.AddListener(PlayButtonFunction);
}
}
private void PDOWN()
{
pPower--;
}
private void PUP()
{
pPower++;
}
private void EDOWN()
{
ePower--;
}
private void EUP()
{
ePower++;
}
}
Feromark2013- Membro
- PONTOS : 2990
REPUTAÇÃO : 4
Idade : 20
Áreas de atuação : C##
Respeito as regras :
Re: Jogo funcionando corretamente apenas dentro da Unity
Eu testei outra forma de fazer o código e ainda não funciona, que é fazendo um Script para cada cena e setando as partes da UI pelo Inspector.Feromark2013 escreveu:Eu possuo um GameManager que automaticamente seta a função de todos butões; atualiza os textos; e verifica coisas como ponto e poder dos times. Dentro da Unity ele funciona perfeitamente. Mas quando compilo para Android ele passa a não funcionar corretamente mais.
O jogo dentro do Android nada funcionando corretamente, por exemplo o Power que está como o padrão escrito direto do Canvas:
https://prntscr.com/jej8b6
O jogo funcionando dentro da Unity com tudo correto:
https://prntscr.com/jej8ax
E meu querido script que fiquei fazendo o dia inteiro ;-;
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class GameManager : MonoBehaviour {
private GameObject pCounter, eCounter, percentageCounter, back;
private int pGols, eGols;
private float percentage;
private int pPower, ePower, difference;
string temp;
private GameObject pUp, pDown, pPowerCounter,play;
private GameObject eUp, eDown, ePowerCounter;
private static GameManager GameManagerInstance;
private void Awake()
{
DontDestroyOnLoad(this);
if (GameManagerInstance == null)
{
GameManagerInstance = this;
}
else
{
Destroy(gameObject);
}
}
private void Start()
{
temp = SceneManager.GetActiveScene().name;
DontDestroyOnLoad(gameObject);
SetTags();
}
private void Update()
{
temp = SceneManager.GetActiveScene().name;
if (temp == "MainMenu")
{
PercentageCalculator();
CountersUpdater();
}
if(temp == "Game")
CountersUpdater();
}
private void OnLevelWasLoaded(int level)
{
temp = SceneManager.GetActiveScene().name;
print("wasLoaded");
SetTags();
}
private void CountersUpdater()
{
if (temp == "Game")
{
percentageCounter.GetComponent<Text>().text = "Percentage to Gol: " + percentage.ToString() + "%";
pCounter.GetComponent<Text>().text = pGols.ToString();
eCounter.GetComponent<Text>().text = eGols.ToString();
}else if(temp == "MainMenu")
{
percentageCounter.GetComponent<Text>().text = "Your Gol Chance: " + percentage.ToString() + "%";
pPowerCounter.GetComponent<Text>().text = "Power " + pPower;
ePowerCounter.GetComponent<Text>().text = "Power " + ePower;
}
}
public void PGolsIncrease()
{
float temp = Random.Range(0, 100);
if (temp <= percentage)
{
pGols++;
CountersUpdater();
}
}
public void EGolsIncrease()
{
eGols++;
CountersUpdater();
}
void BackButton()
{
GameObject.FindWithTag("Back").GetComponent<Button>().onClick.AddListener(BackButtonFunction);
}
private void BackButtonFunction()
{
print("back");
SceneManager.LoadScene(0);
}
private void PlayButtonFunction()
{
SceneManager.LoadScene(1);
}
private void PercentageCalculator()
{
difference = pPower - ePower;
if (difference == 0){
percentage = 4;
return;
}
if (difference > 0)
{
switch (difference)
{
case 1:
percentage = 5;
break;
case 2:
percentage = 6;
break;
case 3:
percentage = 8;
break;
case 4:
percentage = 10;
break;
case 5:
percentage = 20;
break;
}
}
else if (difference < 0)
{
switch (difference)
{
case -1:
percentage = 5;
break;
case -2:
percentage = 5;
break;
case -3:
percentage = 4;
break;
case -4:
percentage = 4;
break;
case -5:
percentage = 3;
break;
}
}
}
private void SetTags()
{
if (temp == "Game")
{
back = GameObject.FindWithTag("Back");
percentageCounter = GameObject.FindWithTag("PercentageCounter");
pCounter = GameObject.FindWithTag("PCounter");
eCounter = GameObject.FindWithTag("ECounter");
back.GetComponent<Button>().onClick.AddListener(BackButtonFunction);
}else if(temp == "MainMenu")
{
pDown = GameObject.FindWithTag("PDown");
pUp = GameObject.FindWithTag("PUp");
eUp = GameObject.FindWithTag("EUp");
eDown = GameObject.FindWithTag("EDown");
ePowerCounter = GameObject.FindWithTag("EPower");
play = GameObject.FindWithTag("Play");
pPowerCounter = GameObject.FindWithTag("PPower");
pUp.GetComponent<Button>().onClick.AddListener(PUP);
pDown.GetComponent<Button>().onClick.AddListener(PDOWN);
percentageCounter = GameObject.FindWithTag("PercentageCounter");
eUp.GetComponent<Button>().onClick.AddListener(EUP);
eDown.GetComponent<Button>().onClick.AddListener(EDOWN);
play.GetComponent<Button>().onClick.AddListener(PlayButtonFunction);
}
}
private void PDOWN()
{
pPower--;
}
private void PUP()
{
pPower++;
}
private void EDOWN()
{
ePower--;
}
private void EUP()
{
ePower++;
}
}
Main Menu:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class MainMenuUi : MonoBehaviour {
public Text percentageCounter,pPowerCounter,ePowerCounter;
public Button pUpBtt, pDownBtt, eUpBtt, eDownBtt, play;
private GameManager gameManager;
private void Start()
{
gameManager = GameObject.FindWithTag("GameManager").GetComponent<GameManager>();
SetButton();
}
private void Update()
{
UpdateText();
gameManager.PercentageCalculator();
}
private void UpdateText()
{
percentageCounter.text = "Your Gol Chance: " + gameManager.percentage.ToString() + "%";
pPowerCounter.text = "Power " + gameManager.pPower.ToString();
ePowerCounter.text = "Power " + gameManager.ePower.ToString();
}
private void SetButton()
{
pUpBtt.onClick = new Button.ButtonClickedEvent();
pDownBtt.onClick = new Button.ButtonClickedEvent();
eUpBtt.onClick = new Button.ButtonClickedEvent();
eDownBtt.onClick = new Button.ButtonClickedEvent();
play.onClick = new Button.ButtonClickedEvent();
pUpBtt.onClick.AddListener(() => pUp());
pDownBtt.onClick.AddListener(() => pDown());
eUpBtt.onClick.AddListener(() => eUp());
eDownBtt.onClick.AddListener(() => eDown());
play.onClick.AddListener(() => openGameScene());
}
private void pDown()
{
gameManager.pPower--;
}
private void pUp()
{
gameManager.pPower++;
}
private void eUp()
{
gameManager.ePower++;
}
private void eDown()
{
gameManager.ePower--;
}
private void openGameScene()
{
SceneManager.LoadScene("Game");
}
}
Game UI:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class GameSceneUI : MonoBehaviour {
public Text pGolsCounter, eGolsCounter, percentageCounter;
public Button back;
private GameManager gameManager;
private void Start()
{
SetButton();
gameManager = GameObject.FindWithTag("GameManager").GetComponent<GameManager>();
}
private void Update()
{
SetText();
}
private void SetText()
{
pGolsCounter.text = gameManager.pGols.ToString();
eGolsCounter.text = gameManager.eGols.ToString();
percentageCounter.text = "Percentage to Gol: " + gameManager.percentage.ToString() + "%";
}
private void SetButton()
{
back.onClick = new Button.ButtonClickedEvent();
back.onClick.AddListener(() => LoadMainMenu());
}
private void LoadMainMenu()
{
SceneManager.LoadScene("MainMenu");
}
}
Feromark2013- Membro
- PONTOS : 2990
REPUTAÇÃO : 4
Idade : 20
Áreas de atuação : C##
Respeito as regras :
Re: Jogo funcionando corretamente apenas dentro da Unity
Acabei de testar e a Ui do game funciona normalFeromark2013 escreveu:Eu testei outra forma de fazer o código e ainda não funciona, que é fazendo um Script para cada cena e setando as partes da UI pelo Inspector.Feromark2013 escreveu:Eu possuo um GameManager que automaticamente seta a função de todos butões; atualiza os textos; e verifica coisas como ponto e poder dos times. Dentro da Unity ele funciona perfeitamente. Mas quando compilo para Android ele passa a não funcionar corretamente mais.
O jogo dentro do Android nada funcionando corretamente, por exemplo o Power que está como o padrão escrito direto do Canvas:
https://prntscr.com/jej8b6
O jogo funcionando dentro da Unity com tudo correto:
https://prntscr.com/jej8ax
E meu querido script que fiquei fazendo o dia inteiro ;-;
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class GameManager : MonoBehaviour {
private GameObject pCounter, eCounter, percentageCounter, back;
private int pGols, eGols;
private float percentage;
private int pPower, ePower, difference;
string temp;
private GameObject pUp, pDown, pPowerCounter,play;
private GameObject eUp, eDown, ePowerCounter;
private static GameManager GameManagerInstance;
private void Awake()
{
DontDestroyOnLoad(this);
if (GameManagerInstance == null)
{
GameManagerInstance = this;
}
else
{
Destroy(gameObject);
}
}
private void Start()
{
temp = SceneManager.GetActiveScene().name;
DontDestroyOnLoad(gameObject);
SetTags();
}
private void Update()
{
temp = SceneManager.GetActiveScene().name;
if (temp == "MainMenu")
{
PercentageCalculator();
CountersUpdater();
}
if(temp == "Game")
CountersUpdater();
}
private void OnLevelWasLoaded(int level)
{
temp = SceneManager.GetActiveScene().name;
print("wasLoaded");
SetTags();
}
private void CountersUpdater()
{
if (temp == "Game")
{
percentageCounter.GetComponent<Text>().text = "Percentage to Gol: " + percentage.ToString() + "%";
pCounter.GetComponent<Text>().text = pGols.ToString();
eCounter.GetComponent<Text>().text = eGols.ToString();
}else if(temp == "MainMenu")
{
percentageCounter.GetComponent<Text>().text = "Your Gol Chance: " + percentage.ToString() + "%";
pPowerCounter.GetComponent<Text>().text = "Power " + pPower;
ePowerCounter.GetComponent<Text>().text = "Power " + ePower;
}
}
public void PGolsIncrease()
{
float temp = Random.Range(0, 100);
if (temp <= percentage)
{
pGols++;
CountersUpdater();
}
}
public void EGolsIncrease()
{
eGols++;
CountersUpdater();
}
void BackButton()
{
GameObject.FindWithTag("Back").GetComponent<Button>().onClick.AddListener(BackButtonFunction);
}
private void BackButtonFunction()
{
print("back");
SceneManager.LoadScene(0);
}
private void PlayButtonFunction()
{
SceneManager.LoadScene(1);
}
private void PercentageCalculator()
{
difference = pPower - ePower;
if (difference == 0){
percentage = 4;
return;
}
if (difference > 0)
{
switch (difference)
{
case 1:
percentage = 5;
break;
case 2:
percentage = 6;
break;
case 3:
percentage = 8;
break;
case 4:
percentage = 10;
break;
case 5:
percentage = 20;
break;
}
}
else if (difference < 0)
{
switch (difference)
{
case -1:
percentage = 5;
break;
case -2:
percentage = 5;
break;
case -3:
percentage = 4;
break;
case -4:
percentage = 4;
break;
case -5:
percentage = 3;
break;
}
}
}
private void SetTags()
{
if (temp == "Game")
{
back = GameObject.FindWithTag("Back");
percentageCounter = GameObject.FindWithTag("PercentageCounter");
pCounter = GameObject.FindWithTag("PCounter");
eCounter = GameObject.FindWithTag("ECounter");
back.GetComponent<Button>().onClick.AddListener(BackButtonFunction);
}else if(temp == "MainMenu")
{
pDown = GameObject.FindWithTag("PDown");
pUp = GameObject.FindWithTag("PUp");
eUp = GameObject.FindWithTag("EUp");
eDown = GameObject.FindWithTag("EDown");
ePowerCounter = GameObject.FindWithTag("EPower");
play = GameObject.FindWithTag("Play");
pPowerCounter = GameObject.FindWithTag("PPower");
pUp.GetComponent<Button>().onClick.AddListener(PUP);
pDown.GetComponent<Button>().onClick.AddListener(PDOWN);
percentageCounter = GameObject.FindWithTag("PercentageCounter");
eUp.GetComponent<Button>().onClick.AddListener(EUP);
eDown.GetComponent<Button>().onClick.AddListener(EDOWN);
play.GetComponent<Button>().onClick.AddListener(PlayButtonFunction);
}
}
private void PDOWN()
{
pPower--;
}
private void PUP()
{
pPower++;
}
private void EDOWN()
{
ePower--;
}
private void EUP()
{
ePower++;
}
}
Main Menu:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class MainMenuUi : MonoBehaviour {
public Text percentageCounter,pPowerCounter,ePowerCounter;
public Button pUpBtt, pDownBtt, eUpBtt, eDownBtt, play;
private GameManager gameManager;
private void Start()
{
gameManager = GameObject.FindWithTag("GameManager").GetComponent<GameManager>();
SetButton();
}
private void Update()
{
UpdateText();
gameManager.PercentageCalculator();
}
private void UpdateText()
{
percentageCounter.text = "Your Gol Chance: " + gameManager.percentage.ToString() + "%";
pPowerCounter.text = "Power " + gameManager.pPower.ToString();
ePowerCounter.text = "Power " + gameManager.ePower.ToString();
}
private void SetButton()
{
pUpBtt.onClick = new Button.ButtonClickedEvent();
pDownBtt.onClick = new Button.ButtonClickedEvent();
eUpBtt.onClick = new Button.ButtonClickedEvent();
eDownBtt.onClick = new Button.ButtonClickedEvent();
play.onClick = new Button.ButtonClickedEvent();
pUpBtt.onClick.AddListener(() => pUp());
pDownBtt.onClick.AddListener(() => pDown());
eUpBtt.onClick.AddListener(() => eUp());
eDownBtt.onClick.AddListener(() => eDown());
play.onClick.AddListener(() => openGameScene());
}
private void pDown()
{
gameManager.pPower--;
}
private void pUp()
{
gameManager.pPower++;
}
private void eUp()
{
gameManager.ePower++;
}
private void eDown()
{
gameManager.ePower--;
}
private void openGameScene()
{
SceneManager.LoadScene("Game");
}
}
Game UI:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class GameSceneUI : MonoBehaviour {
public Text pGolsCounter, eGolsCounter, percentageCounter;
public Button back;
private GameManager gameManager;
private void Start()
{
SetButton();
gameManager = GameObject.FindWithTag("GameManager").GetComponent<GameManager>();
}
private void Update()
{
SetText();
}
private void SetText()
{
pGolsCounter.text = gameManager.pGols.ToString();
eGolsCounter.text = gameManager.eGols.ToString();
percentageCounter.text = "Percentage to Gol: " + gameManager.percentage.ToString() + "%";
}
private void SetButton()
{
back.onClick = new Button.ButtonClickedEvent();
back.onClick.AddListener(() => LoadMainMenu());
}
private void LoadMainMenu()
{
SceneManager.LoadScene("MainMenu");
}
}
Feromark2013- Membro
- PONTOS : 2990
REPUTAÇÃO : 4
Idade : 20
Áreas de atuação : C##
Respeito as regras :
Tópicos semelhantes
» Unity - Jogo LUDO usando apenas Triggers
» Procurar outro objeto por tag apenas dentro do objeto
» tutorial dentro do jogo
» Inserir uma página da web dentro do meu jogo
» Estatisticas Gerais dentro do Jogo?
» Procurar outro objeto por tag apenas dentro do objeto
» tutorial dentro do jogo
» Inserir uma página da web dentro do meu jogo
» Estatisticas Gerais dentro do Jogo?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos