[Ajuda] Checar quando um valor de uma variável mudou
3 participantes
Página 1 de 1
[Ajuda] Checar quando um valor de uma variável mudou
Galera, alguém sabe de alguma forma de saber sempre que uma variável mudar seu valor? no caso é uma bool, sempre que ela for de true pra false ou false pra true eu saber que o valor mudou.
Ps: Não consegui uma forma de explicar melhor, mas acho que deu pra entender rsrsrs
Ps: Não consegui uma forma de explicar melhor, mas acho que deu pra entender rsrsrs
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: [Ajuda] Checar quando um valor de uma variável mudou
faz um if ou sei lá q q se qr com isso
anizioNoob- Avançado
- PONTOS : 3479
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: [Ajuda] Checar quando um valor de uma variável mudou
Já tentei muita coisa, mas não consegui
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: [Ajuda] Checar quando um valor de uma variável mudou
diz oq vc qr fazer mano pa eu ver se sei ajudar
anizioNoob- Avançado
- PONTOS : 3479
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: [Ajuda] Checar quando um valor de uma variável mudou
É porque eu tenho um personagem que anda pra direita, ai quando bate na parede ele começa a andar para esquerda e vice-versa, mas quando pula ele consegue agarrar na parede e caindo lentamente, mas eu quero que quando ele termine de cair da parede ele ande para o lado oposto do que ele tava andando antes de pular e se arrastar na parede, ele ja tem o checkground e checkwall, quando ta na parede tem um bool que se ativa avisando que ele ta agarrado nessas paredes.
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: [Ajuda] Checar quando um valor de uma variável mudou
- Código:
using UnityEngine;
using System.Collections;
public class Debugar : MonoBehaviour {
public bool variavelBooleana = false;
private bool auxbooleana;
void Start () {
auxbooleana = variavelBooleana;
}
void Update () {
if (variavelBooleana != auxbooleana) {
auxbooleana = variavelBooleana;
Debug.Log ("mudouDeEstado");
}
}
}
Re: [Ajuda] Checar quando um valor de uma variável mudou
Está aí o script que eu fiz:
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PlayerBehaviour : MonoBehaviour {
private bool click;
public float speed;
public float jumpForce;
private bool toRight = true;
private bool isGround, closeWall;
private bool climb = false;
private bool dubleJump,jump = false;
private Rigidbody2D rb;
private Animator playerAC;
private SpriteRenderer sprite;
public Transform groundCheck, wallCheck;
public float groundRadius;
public LayerMask whatIsGround, whatIsWall;
public Vector2 checkWallPositionRight, checkWallPositionLeft;
void Start () {
sprite = GetComponent<SpriteRenderer> ();
playerAC = GetComponent<Animator> ();
rb = GetComponent<Rigidbody2D> ();
}
void Update () {
if (click) {
StartCoroutine (DisableClick ());
}
if (closeWall && isGround) {
toRight = (toRight) ? false : true;
}
if (climb) {
jump = false;
if (!isGround) {
playerAC.SetTrigger ("Climb");
dubleJump = false;
rb.velocity = new Vector2 (rb.velocity.x, -0.5f);
sprite.flipX = toRight;
}
}
if (isGround) {
climb = false;
dubleJump = false;
jump = false;
if (!jump && !climb) {
playerAC.SetTrigger ("Running");
}
} else {
if (!click) {
jump = true;
}
if (!isGround && !climb && jump) {
playerAC.SetTrigger ("Jumping");
}
}
if (toRight) {
if (!climb) {
wallCheck.localPosition = checkWallPositionRight;
sprite.flipX = false;
transform.Translate (Vector2.right * speed * Time.deltaTime);
}
} if(!toRight) {
if (!climb) {
wallCheck.localPosition = checkWallPositionLeft;
sprite.flipX = true;
transform.Translate (Vector2.left * speed * Time.deltaTime);
}
}
}
void FixedUpdate(){
if (isGround) {
closeWall = Physics2D.OverlapCircle (wallCheck.position, groundRadius, whatIsWall);
}
if (jump && !isGround && !click) {
climb = Physics2D.OverlapCircle (wallCheck.position, groundRadius, whatIsWall);
}
isGround = Physics2D.OverlapCircle (groundCheck.position, groundRadius, whatIsGround);
if (click) {
if (isGround || climb) {
rb.AddForce (Vector2.up * jumpForce * Time.deltaTime, ForceMode2D.Impulse);
StartCoroutine (DubleJumpTime ());
if (climb) {
climb = false;
jump = false;
toRight = (toRight) ? false : true;
}
}
if ((jump && !climb && !dubleJump) && click) {
playerAC.SetTrigger ("DubleJump");
dubleJump = true;
jump = false;
rb.velocity = new Vector2 (rb.velocity.x, -0.5f);
rb.AddForce (Vector2.up * jumpForce * Time.deltaTime, ForceMode2D.Impulse);
}
}
}
public void Click(bool isClick){
click = isClick;
}
IEnumerator DisableClick(){
yield return new WaitForSeconds (0.1f);
click = false;
}
IEnumerator DubleJumpTime(){
yield return new WaitForSeconds (0.1f);
jump = true;
}
}
ismarspn- Programador
- PONTOS : 4001
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Tópicos semelhantes
» Detectar se uma variável mudou e a quanto tempo ela mudou
» [Ajuda] Variavel não esta recebendo o valor do outro script
» Preciso de ajuda para substituir valor de variavel em outro script
» Variável receber valor de uma array
» Acrescentar um valor em uma variável float
» [Ajuda] Variavel não esta recebendo o valor do outro script
» Preciso de ajuda para substituir valor de variavel em outro script
» Variável receber valor de uma array
» Acrescentar um valor em uma variável float
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos