CHAMAR UMA BOOL DE UM OUTRO SCRIPT
5 participantes
Página 1 de 1
CHAMAR UMA BOOL DE UM OUTRO SCRIPT
Opa, e aí galera! quero saber como eu faço pra chamar a bool de um outro script, podendo assim ativar ou desativa-la..
é que estou querendo fazer um outro script bem simples, de quando o player entrar em um trigger ativar a bool que falei.
é que estou querendo fazer um outro script bem simples, de quando o player entrar em um trigger ativar a bool que falei.
MeverPlays- Mestre
- PONTOS : 3867
REPUTAÇÃO : 48
Áreas de atuação : SketchUp, Unity.
Respeito as regras :
Re: CHAMAR UMA BOOL DE UM OUTRO SCRIPT
Script 1
Script 2
Fiz pelo celular. Pode dar algum errinho
- Código:
public class Teste : MonoBehaviour {
public static bool variavel = false;
}
Script 2
- Código:
void OnTriggerEnter () {
Teste.variavel = true;
}
void OnTriggerExit (){
Teste.variavel = false;
}
Fiz pelo celular. Pode dar algum errinho
JohnRambo- Moderador
- PONTOS : 5171
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: CHAMAR UMA BOOL DE UM OUTRO SCRIPT
Nossa que fácil.. valeu John Rambo.
MeverPlays- Mestre
- PONTOS : 3867
REPUTAÇÃO : 48
Áreas de atuação : SketchUp, Unity.
Respeito as regras :
Re: CHAMAR UMA BOOL DE UM OUTRO SCRIPT
Existem vários metodos de se fazer isso, porém o melhor e mais correto vai depender do seu projeto.
Um método simples é usar um modificador de visibilidade "static" para a variavel bool, assim voce vai compartilhar essa variavel com todas as instancias do objeto.
Um método simples é usar um modificador de visibilidade "static" para a variavel bool, assim voce vai compartilhar essa variavel com todas as instancias do objeto.
Re: CHAMAR UMA BOOL DE UM OUTRO SCRIPT
não reconheceu a variavel que coloquei.. no script 1 a bool tem a ta static?
MeverPlays- Mestre
- PONTOS : 3867
REPUTAÇÃO : 48
Áreas de atuação : SketchUp, Unity.
Respeito as regras :
Re: CHAMAR UMA BOOL DE UM OUTRO SCRIPT
Variaveis estaticas não podem ser manipuladas individualmente. Portanto se voce criar uma estatica ao alterar-la todos gameObjects que tiverem o script anexado serão alterados igualmente. Então caso voce tenha q manipular individualmente tera q tirar o static dela e fazer com
- Código:
objetoQueContemOScript.GetComponent<nome do script>().booleana = false;
RenanMSV- Instrutor
- PONTOS : 4483
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: CHAMAR UMA BOOL DE UM OUTRO SCRIPT
Desisti de fazer por um outro script.. agora quero fazer isso no proprio script de vida do player.
Quero fazer o seguinte: ao entrar em um determinado trigger (que sera setado numa variavel) ativar a bool isDead do seguinte script:
se alguém souber me ajudar fico grato.
Quero fazer o seguinte: ao entrar em um determinado trigger (que sera setado numa variavel) ativar a bool isDead do seguinte script:
- Código:
using UnityEngine;
using System.Collections;
public class HealthScript : MonoBehaviour
{
public float hitPoints;
public int maxHitPoints;
public bool regeneration = false;
public float regenerationSpeed;
public AudioSource aSource;
public AudioClip painSound;
public AudioClip fallDamageSound;
public Transform deadReplacement;
public GUISkin mySkin;
private GameObject radar;
public Texture damageTexture;
private float t = 0.0f;
private float alpha;
private bool isDead = false;
private ScoreManager scoreManager;
public Transform camShake;
private Vector3 originalPos;
void Start()
{
originalPos = camShake.localPosition;
if (regeneration)
hitPoints = maxHitPoints;
alpha = 0.0f;
}
void Update()
{
if (t > 0.0f)
{
t -= Time.deltaTime;
alpha = t;
}
if (regeneration)
{
if (hitPoints < maxHitPoints)
hitPoints += Time.deltaTime * regenerationSpeed;
}
}
public void PlayerDamage(int damage)
{
if (hitPoints < 0.0f) return;
hitPoints -= damage;
aSource.PlayOneShot(painSound, 1.0f);
t = 2.0f;
if (hitPoints <= 0.0f) Die();
}
//Picking up MedicKit
public void Medic(int medic)
{
hitPoints += medic;
if (hitPoints > maxHitPoints)
{
float convertToScore = hitPoints - maxHitPoints;
scoreManager = GameObject.Find("ScoreManager").GetComponent<ScoreManager>();
scoreManager.addScore(System.Convert.ToInt32(convertToScore));
hitPoints = maxHitPoints;
}
}
void Die()
{
if (isDead) return;
isDead = true;
if (scoreManager == null)
scoreManager = GameObject.Find("ScoreManager").GetComponent<ScoreManager>();
scoreManager.PlayerDead();
Instantiate(deadReplacement, transform.position, transform.rotation);
Destroy(gameObject);
}
void OnTriggerEnter()
{
}
void OnGUI()
{
GUI.skin = mySkin;
GUI.Label(new Rect(40, Screen.height - 50, 60, 60), " Vida: ");
GUI.Label(new Rect(100, Screen.height - 50, 60, 60), "" + hitPoints.ToString("F0"), mySkin.customStyles[0]);
GUI.color = new Color(1, 1, 1, alpha);
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), damageTexture);
}
public void PlayerFallDamage(float dam)
{
PlayerDamage(System.Convert.ToInt32(dam));
if (fallDamageSound) aSource.PlayOneShot(fallDamageSound, 1.0f);
}
IEnumerator Shake(float p)
{
float t = 1.0f;
float shakePower;
while (t > 0.0f)
{
t -= Time.deltaTime;
shakePower = t / 50;
camShake.localPosition = originalPos + Random.insideUnitSphere * shakePower * 35;
yield return 0;
}
}
}
se alguém souber me ajudar fico grato.
MeverPlays- Mestre
- PONTOS : 3867
REPUTAÇÃO : 48
Áreas de atuação : SketchUp, Unity.
Respeito as regras :
Tópicos semelhantes
» COMO DESATIVAR O SCRIPT "FisrtPersonController" DO PLAYER ATRAVÉS DE OUTRO SCRIPT
» chamar float de outro script
» Como faço pra chamar a funçao de um script em outro ?
» Como chamar animação sem passar por outro parâmetros?
» Como acessar variável de um script usando outro script (Entre e entenda).
» chamar float de outro script
» Como faço pra chamar a funçao de um script em outro ?
» Como chamar animação sem passar por outro parâmetros?
» Como acessar variável de um script usando outro script (Entre e entenda).
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos