Como desativa um script dentro de outro?
5 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Re: Como desativa um script dentro de outro?
pode fazer assim:
private ScriptParaDesativar scr;
void Update {
scr = GetComponent<ScriptParaDesativar>();
scr.enabled = false;
}
coloquei dentro do Update como exemplo, mas vc pode colocar aonde vc quiser.
agora, se o script estiver em outro objeto diferente é só usar:
scr = GameObject.FindGameObjecyWithTag("NomeDaTag").GetComponent<ScriptParaDesativar>();
private ScriptParaDesativar scr;
void Update {
scr = GetComponent<ScriptParaDesativar>();
scr.enabled = false;
}
coloquei dentro do Update como exemplo, mas vc pode colocar aonde vc quiser.
agora, se o script estiver em outro objeto diferente é só usar:
scr = GameObject.FindGameObjecyWithTag("NomeDaTag").GetComponent<ScriptParaDesativar>();
Marc7- Mestre
- PONTOS : 3443
REPUTAÇÃO : 28
Respeito as regras :
Re: Como desativa um script dentro de outro?
Tmb dá para desativar com raycast ;-;
- Código:
Raycast Hit;
void Update () {
if (Physics.Raycast (this.transform.position,this.transform.forward,out Hit){
Debug.Log("Colidiu ;-;")
}
if (Hit.transform,gameObject != null){
Hit.transform.gameObject.GetComponent<script>().enabled = false;
}else {
Debug.Log("Nada ;-;")
}
}
Hit.transform.gameObject.GetComponent<script>().variavel; // tmb serve para modificar variaveis...
//._. é só um exemplo e tem 80% de chances de não funcionar...
Re: Como desativa um script dentro de outro?
PauloFR escreveu:Tmb dá para desativar com raycast ;-;
- Código:
Raycast Hit;
void Update () {
if (Physics.Raycast (this.transform.position,this.transform.forward,out Hit){
Debug.Log("Colidiu ;-;")
}
if (Hit.transform,gameObject != null){
Hit.transform.gameObject.GetComponent<script>().enabled = false;
}else {
Debug.Log("Nada ;-;")
}
}
Hit.transform.gameObject.GetComponent<script>().variavel; // tmb serve para modificar variaveis...
//._. é só um exemplo e tem 80% de chances de não funcionar...
Dá dá, mas só se for necessário em alguma situação muito especifica, raycast é custoso, chamá-lo no update então só para desativar um script, não recomendaria.
Re: Como desativa um script dentro de outro?
Pessoal, esqueci de colocar o script dentro do GetComponent, na verdade fica:
GetComponent(script);
GetComponent(script);
Marc7- Mestre
- PONTOS : 3443
REPUTAÇÃO : 28
Respeito as regras :
Re: Como desativa um script dentro de outro?
foi mal de novo rsrsrs:
GetComponent<script>();
GetComponent<script>();
Marc7- Mestre
- PONTOS : 3443
REPUTAÇÃO : 28
Respeito as regras :
Re: Como desativa um script dentro de outro?
Fiz assim
- Código:
private Coletaveis scr;
void Start(){
scr = GetComponent<Coletaveis>();
scr.enabled = false;
}
void OnTriggerEnter (Collider other){
if (other.tag == "BotaoV1") {
other.gameObject.SetActive (false);
scr = GetComponent<Coletaveis>();
scr.enabled = true;
}
Re: Como desativa um script dentro de outro?
DUT é isso mesmo, só que vc declarou a scr duas vezes, no Start e no void OnTriggerEnter. Pode deixar só no void OnTriggerEnter mesmo.
Ficaria:
[list=linenums]
[*]private Coletaveis scr;
[*]void Start(){
[*] scr.enabled = false;
[*] }
[*]void OnTriggerEnter (Collider other){
[*] if (other.tag == "BotaoV1") {
[*] other.gameObject.SetActive (false);
[*] scr = GetComponent<Coletaveis>();
[*] scr.enabled = true;
[*] }
[/list]
Ficaria:
[list=linenums]
[*]private Coletaveis scr;
[*]void Start(){
[*] scr.enabled = false;
[*] }
[*]void OnTriggerEnter (Collider other){
[*] if (other.tag == "BotaoV1") {
[*] other.gameObject.SetActive (false);
[*] scr = GetComponent<Coletaveis>();
[*] scr.enabled = true;
[*] }
[/list]
Marc7- Mestre
- PONTOS : 3443
REPUTAÇÃO : 28
Respeito as regras :
Re: Como desativa um script dentro de outro?
É só fazer assim pra ativar
Caso ele esteja em outro GameObject, é só fazer assim
Fácil. Basta jogar a parte do GetComponent em um if, e veja a mágica acontecer!
- Código:
GetComponent<nomedoscript>().enabled = false;
Caso ele esteja em outro GameObject, é só fazer assim
- Código:
public GameObject objeto;
objeto.GetComponent<nomedoscript>().enabled = false;
Fácil. Basta jogar a parte do GetComponent em um if, e veja a mágica acontecer!
Tópicos semelhantes
» Tem como fazer um If dentro de outro If?
» [RESOLVIDO] Tem como Um Script rodar antes de Outro
» C# Unity 3d Como alterar 1 script usando outro
» Como acesso uma variável em outro script?
» Como ter varios prefabs com o msm script e um nao alterar o outro?
» [RESOLVIDO] Tem como Um Script rodar antes de Outro
» C# Unity 3d Como alterar 1 script usando outro
» Como acesso uma variável em outro script?
» Como ter varios prefabs com o msm script e um nao alterar o outro?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos