Trocar textura do button canvas ao clicar??
3 participantes
Página 1 de 1
Trocar textura do button canvas ao clicar??
Fala gurizada,
To fazendo um button "sem som". E quando eu clico quero que mude para a textura de "som on" ou "som off". A cada clique elas trocam. Como faço isso?
Tenho aqui um script base: (ps: está com um algum erro de lógica, pois a primeira vez que clico no button nada acontece, a partir do segundo segundo clique passa a funcionar perfeitamente)
To fazendo um button "sem som". E quando eu clico quero que mude para a textura de "som on" ou "som off". A cada clique elas trocam. Como faço isso?
Tenho aqui um script base: (ps: está com um algum erro de lógica, pois a primeira vez que clico no button nada acontece, a partir do segundo segundo clique passa a funcionar perfeitamente)
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class Buttons : MonoBehaviour {
public Animator animCamera;
private bool Camera_Menu;
public GameObject cameraObject;
public GameObject som;
bool sound;
void Awake (){
}
void Start (){
som = GameObject.FindWithTag ("Sound");
}
public void ButtonJogar (){
Camera_Menu = true;
animCamera.SetBool ("Camera_Menu", Camera_Menu);
StartCoroutine(waitaLittle());
}
public void ButtonCreditos (){
Fading.Instance.StartFade ("Creditos");
}
public void ButtonVolume (){
if (sound == true) {
som.GetComponent<AudioSource> ().enabled = false;
sound = false;
} else if (sound == false) {
som.GetComponent<AudioSource> ().enabled = true;
sound = true;
}
}
IEnumerator waitaLittle(){
yield return new WaitForSeconds (2f);
Application.LoadLevel ("Salame");
}
}
Hardencio- Avançado
- PONTOS : 3719
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Trocar textura do button canvas ao clicar??
- Código:
public void ButtonVolume ()
{
som.GetComponent<AudioSource> ().enabled = !som.GetComponent<AudioSource> ().enabled;
sound = !sound;
}
Última edição por weslleyFx em Seg Ago 15, 2016 6:28 pm, editado 1 vez(es)
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Trocar textura do button canvas ao clicar??
Deu esse erro aqui:
error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statement
error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statement
Hardencio- Avançado
- PONTOS : 3719
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Trocar textura do button canvas ao clicar??
em qual linha ?
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Trocar textura do button canvas ao clicar??
Eu coloquei isso que tu mandou
Hardencio- Avançado
- PONTOS : 3719
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Trocar textura do button canvas ao clicar??
poste o script completo
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Trocar textura do button canvas ao clicar??
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class Buttons : MonoBehaviour {
public Animator animCamera;
private bool Camera_Menu;
public GameObject cameraObject;
public GameObject som;
bool sound;
public GameObject Button_s;
public Animator animButtons;
void Awake (){
}
void Start (){
som = GameObject.FindWithTag ("Sound");
}
public void ButtonJogar (){
Camera_Menu = true;
animCamera.SetBool ("Camera_Menu", Camera_Menu);
StartCoroutine(waitaLittle());
}
public void ButtonCreditos (){
Fading.Instance.StartFade ("Creditos");
}
public void ButtonVolume ()
{
som.GetComponent<AudioSource> ().enabled != som.GetComponent<AudioSource> ().enabled;
sound != sound;
}
IEnumerator waitaLittle(){
yield return new WaitForSeconds (2f);
Application.LoadLevel ("Salame");
}
}
Hardencio- Avançado
- PONTOS : 3719
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Trocar textura do button canvas ao clicar??
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class Buttons : MonoBehaviour
{
public Animator animCamera;
private bool Camera_Menu;
public GameObject cameraObject;
public GameObject som;
bool sound;
public GameObject Button_s;
public Animator animButtons;
void Awake()
{
}
void Start()
{
som = GameObject.FindWithTag("Sound");
}
public void ButtonJogar()
{
Camera_Menu = true;
animCamera.SetBool("Camera_Menu", Camera_Menu);
StartCoroutine(waitaLittle());
}
public void ButtonCreditos()
{
Fading.Instance.StartFade("Creditos");
}
public void ButtonVolume()
{
som.GetComponent<AudioSource>().enabled = !som.GetComponent<AudioSource>().enabled;
sound = !sound;
}
IEnumerator waitaLittle()
{
yield return new WaitForSeconds(2f);
Application.LoadLevel("Salame");
}
}
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Trocar textura do button canvas ao clicar??
Opa, agora funcionou o bug do som. Obrigado.
Mas como faço para trocar a textura quando eu clico nele? Pra fazer realmente um botão para tirar o som. Quando clico ele terá a textura de som, e quando estiver sem som a textura será a de som mute.
Aguem sabe como resolver?
Mas como faço para trocar a textura quando eu clico nele? Pra fazer realmente um botão para tirar o som. Quando clico ele terá a textura de som, e quando estiver sem som a textura será a de som mute.
Aguem sabe como resolver?
Hardencio- Avançado
- PONTOS : 3719
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Trocar textura do button canvas ao clicar??
- Código:
bool sound;
public Sprite texturaSom, texturaMudo;
public Button botaoDoSom;
public void ButtonVolume(){
sound = !sound;
if (sound == true) {
botaoDoSom.image.sprite = texturaSom;
} else {
botaoDoSom.image.sprite = texturaMudo;
}
}
Talvez algo deste tipo ajude... primeiramente você tem que ter esta biblioteca:
- Código:
using UnityEngine.UI;
Agora, o que eu fiz foi criar variáveis para 2 sprites, um som a textura de volume e outro para a textura de "mudo". E ainda criei uma terceira variável para você linkar o botão que vai receber a void.
Re: Trocar textura do button canvas ao clicar??
Boa!! Ta funcionando.
Só que tenho mais um probleminha. Se eu mutar o som e trocar de scene e voltar para o menu a textura vai ficar como "Com som". Aí se eu clicar fica inverso as texturas com o som.
Só que tenho mais um probleminha. Se eu mutar o som e trocar de scene e voltar para o menu a textura vai ficar como "Com som". Aí se eu clicar fica inverso as texturas com o som.
Hardencio- Avançado
- PONTOS : 3719
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Trocar textura do button canvas ao clicar??
Basta setar as texturas corretas que devem ser no start, conforme a condição da variável... se está verdadeira seta 1, se esta falsa seta a outra.
Re: Trocar textura do button canvas ao clicar??
Como assim Marcos? A cena sempre inicia e ele está na som on, mesmo estando com o som mutado.
Tu diz fazer uma verificação assim na void Start?
Tu diz fazer uma verificação assim na void Start?
- Código:
if (sound == true) {
botaoDoSom.image.sprite = texturaSom;
} else {
botaoDoSom.image.sprite = texturaMudo;
}
Hardencio- Avançado
- PONTOS : 3719
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Trocar textura do button canvas ao clicar??
exato, talvez até no awake, dependendo de como está o seu script.
Re: Trocar textura do button canvas ao clicar??
Não esta dando certo...já tentei por no start ou no awake...
Sempre quando volto pra cena menu o som está com a textura de ativado.
Teria que fazer algo que salve eu acho...
Sempre quando volto pra cena menu o som está com a textura de ativado.
Teria que fazer algo que salve eu acho...
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class Buttons : MonoBehaviour
{
public Animator animCamera;
private bool Camera_Menu;
public GameObject cameraObject;
public GameObject som;
public bool sound;
public Sprite texturaSom, texturaMudo;
public Button botaoDoSom;
public Animator animButtonPlay;
private bool anim_bunttonPlay;
public Animator anim_buttonSound;
public Animator anim_buttonCreditos;
void Awake()
{
if (sound == true) {
botaoDoSom.image.sprite = texturaSom;
} else {
botaoDoSom.image.sprite = texturaMudo;
}
}
void Start()
{
som = GameObject.FindWithTag("Sound");
}
void Update(){
}
public void ButtonJogar()
{
anim_bunttonPlay = true;
animButtonPlay.SetBool ("Jogar", anim_bunttonPlay);
anim_buttonSound.SetBool ("Som", anim_bunttonPlay);
animCamera.SetBool("Camera_Menu", anim_bunttonPlay);
anim_buttonCreditos.SetBool ("Creditos", anim_bunttonPlay);
StartCoroutine(waitaLittle());
}
public void ButtonCreditos()
{
Fading.Instance.StartFade("Creditos");
}
public void ButtonVolume()
{
som.GetComponent<AudioSource>().enabled = !som.GetComponent<AudioSource>().enabled;
sound = !sound;
if (sound == true) {
botaoDoSom.image.sprite = texturaSom;
} else {
botaoDoSom.image.sprite = texturaMudo;
}
}
IEnumerator waitaLittle()
{
yield return new WaitForSeconds(2f);
Application.LoadLevel("Salame");
}
}
Hardencio- Avançado
- PONTOS : 3719
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Trocar textura do button canvas ao clicar??
Tente isto:
Só que tem uma coisa, você não está salvando nada, não existe nada sendo setado, então o script sempre vai puxar as condições padrões das variáveis,
- Código:
using UnityEngine;
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class Buttons : MonoBehaviour
{
public Animator animCamera;
private bool Camera_Menu;
public GameObject cameraObject;
public GameObject som;
public bool sound;
public Sprite texturaSom, texturaMudo;
public Button botaoDoSom;
public Animator animButtonPlay;
private bool anim_bunttonPlay;
public Animator anim_buttonSound;
public Animator anim_buttonCreditos;
void Awake()
{
bool condicao = som.GetComponent<AudioSource>().enabled;
if (condicao == true) {
botaoDoSom.image.sprite = texturaSom;
} else {
botaoDoSom.image.sprite = texturaMudo;
}
}
void Start()
{
som = GameObject.FindWithTag("Sound");
}
void Update(){
}
public void ButtonJogar()
{
anim_bunttonPlay = true;
animButtonPlay.SetBool ("Jogar", anim_bunttonPlay);
anim_buttonSound.SetBool ("Som", anim_bunttonPlay);
animCamera.SetBool("Camera_Menu", anim_bunttonPlay);
anim_buttonCreditos.SetBool ("Creditos", anim_bunttonPlay);
StartCoroutine(waitaLittle());
}
public void ButtonCreditos()
{
Fading.Instance.StartFade("Creditos");
}
public void ButtonVolume()
{
som.GetComponent<AudioSource>().enabled = !som.GetComponent<AudioSource>().enabled;
sound = !sound;
if (sound == true) {
botaoDoSom.image.sprite = texturaSom;
} else {
botaoDoSom.image.sprite = texturaMudo;
}
}
IEnumerator waitaLittle()
{
yield return new WaitForSeconds(2f);
Application.LoadLevel("Salame");
}
}
Só que tem uma coisa, você não está salvando nada, não existe nada sendo setado, então o script sempre vai puxar as condições padrões das variáveis,
Tópicos semelhantes
» Trocar Textura do Material Com UI Button !
» Ao clicar meu Button nada acontece. Oque eu faço?
» problema com canvas ui button
» (Duvida) Button canvas.
» como fazer trocar a imagem q está no UI canvas ?
» Ao clicar meu Button nada acontece. Oque eu faço?
» problema com canvas ui button
» (Duvida) Button canvas.
» como fazer trocar a imagem q está no UI canvas ?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos