como funciona o oncolliderEnter?
4 participantes
Página 1 de 1
como funciona o oncolliderEnter?
como funciona o oncolliderEnter?
quero fazer o seguinte, quando o objeto1 colidir com o objeto2 ele modifiqui uma variavel no objeto2, como faço?
quero fazer o seguinte, quando o objeto1 colidir com o objeto2 ele modifiqui uma variavel no objeto2, como faço?
Re: como funciona o oncolliderEnter?
ele e chamado quando o colisor tocar outro vc pode acessar as informações
usando o GetComponet
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnCollisionEnter.html
https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html
usando o GetComponet
- Código:
void OnCollisionEnter(Collision collision) {
collision.gameObject.GetComponent<Script>().Variavel = valor;
}
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnCollisionEnter.html
https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html
Weslley- Moderador
- PONTOS : 5728
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: como funciona o oncolliderEnter?
O OnCollisionEnter vai ser detectado para todos os colisores do objeto que carrega o script.
Re: como funciona o oncolliderEnter?
ele e chamado quando o colisor tocar outro vc pode acessar as informações
usando o GetComponet
Code expand select popup ?
void OnCollisionEnter(Collision collision) {
collision.gameObject.GetComponent<Script>().Variavel = valor;
}
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnCollisionEnter.html
https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html
esse Script da um pequeno erro, mas nao sei o porque
ERROR: NullReferenceException: Object reference not set to an instance of an object
Dano.OnCollisionEnter (UnityEngine.Collision collision) (at Assets/Script C#/Dano.cs:17)
usando o GetComponet
Code expand select popup ?
void OnCollisionEnter(Collision collision) {
collision.gameObject.GetComponent<Script>().Variavel = valor;
}
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnCollisionEnter.html
https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html
esse Script da um pequeno erro, mas nao sei o porque
ERROR: NullReferenceException: Object reference not set to an instance of an object
Dano.OnCollisionEnter (UnityEngine.Collision collision) (at Assets/Script C#/Dano.cs:17)
Re: como funciona o oncolliderEnter?
Tem como mandar o script inteiro?
e por favor, use a caixa de códigos que o fórum fornece, para o script não perder os componentes
e por favor, use a caixa de códigos que o fórum fornece, para o script não perder os componentes
Re: como funciona o oncolliderEnter?
este é o Script que da o dano
esse é o Script que esta no objeto que recebe o Dano
- Código:
using UnityEngine;
using System.Collections;
public class Dano : MonoBehaviour {
public int ATK ;
public int DANO;
public GameObject obj;
void Update (){
DANO =(ATK /obj.GetComponent<Poder> ().DEF)*(ATK / obj.GetComponent<Poder> ().DEF)*(ATK / obj.GetComponent<Poder> ().DEF);
Debug.Log (DANO);
}
void OnCollisionEnter(Collision collision) {
collision.gameObject.GetComponent<Poder>().Avaria-= DANO;
}
}
esse é o Script que esta no objeto que recebe o Dano
- Código:
using UnityEngine;
using System.Collections;
public class Poder : MonoBehaviour {
public int ATK;
public int Avaria;
public int Forca;
public int DEF;
public int Velocidade;
public int Nivel;
}
Re: como funciona o oncolliderEnter?
Acredito que o erro aconteça apenas quando você executa o jogo, correto?
É possível que aconteça por que o objeto que você está colidindo não tem o componente "Poder" para você alterar os valores, e provavelmente o objeto está colidindo com o chão, por exemplo. Então será necessário utilizar algum metodo de verificação, para saber se realmente está colidindo com o objeto correto, como uma tag, por exemplo.
É possível que aconteça por que o objeto que você está colidindo não tem o componente "Poder" para você alterar os valores, e provavelmente o objeto está colidindo com o chão, por exemplo. Então será necessário utilizar algum metodo de verificação, para saber se realmente está colidindo com o objeto correto, como uma tag, por exemplo.
Re: como funciona o oncolliderEnter?
isso mesmo é bem esse o erro que acontece, mas nao sei como usar as Tags nas colisoes, como verificar se uma variavel existe no objeto da colisao
Re: como funciona o oncolliderEnter?
modifiquei um pouco o script e deu certo :D
- Código:
using UnityEngine;
using System.Collections;
public class Dano : MonoBehaviour {
public int ATK ;
public int DANO;
GameObject Jogador;
void Start(){
Jogador=GameObject.FindWithTag("Player");
}
void Update (){
DANO =(ATK /Jogador.GetComponent<Poder> ().DEF);
Debug.Log(Mathf.Pow(5,4));
}
void OnCollisionEnter(Collision collision) { if(collision.gameObject==Jogador.gameObject)
collision.gameObject.GetComponent<Poder>().Avaria-= DANO;}
}
Tópicos semelhantes
» Como que faço para rotacionar um objeto na posição do player como o cenario
» Gostaria de saber se já tem como colocar esse carro como mod no Spintires Mudrunners
» [RESOLVIDO] Como criar varias contas em um jogo como PlayerPrefs.
» Como usar o bake em uma situação como essa ?
» como fazer um sistema de construçao de base? (como se fosse o do rust)
» Gostaria de saber se já tem como colocar esse carro como mod no Spintires Mudrunners
» [RESOLVIDO] Como criar varias contas em um jogo como PlayerPrefs.
» Como usar o bake em uma situação como essa ?
» como fazer um sistema de construçao de base? (como se fosse o do rust)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos