[AJUDA] Desativar/Ativar rigidbody
4 participantes
Página 1 de 1
[AJUDA] Desativar/Ativar rigidbody
Galera, Como faço pra por exemplo;
Tenho um script que dá incompartibilidade com rigidbody..
Preciso ativar o rigidbody de meu objeto quando entro em um collider e desativar quando saio, alguem sabe como?
Grato pelas respostas
Tenho um script que dá incompartibilidade com rigidbody..
Preciso ativar o rigidbody de meu objeto quando entro em um collider e desativar quando saio, alguem sabe como?
Grato pelas respostas
WiredD- Avançado
- PONTOS : 3325
REPUTAÇÃO : 14
Respeito as regras :
Re: [AJUDA] Desativar/Ativar rigidbody
pra isso vc tem que usa o isKinematic
- Código:
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
public Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
rb.isKinematic = true;
}
}
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [AJUDA] Desativar/Ativar rigidbody
weslleyFx escreveu:pra isso vc tem que usa o isKinematic
- Código:
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
public Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
rb.isKinematic = true;
}
}
No caso isKinematic, vai ativar ao entrar em um collider? Preciso por TAG no objeto com o collider? Por na void OnTriggerEnter? :v
WiredD- Avançado
- PONTOS : 3325
REPUTAÇÃO : 14
Respeito as regras :
Re: [AJUDA] Desativar/Ativar rigidbody
Sim vc tem que marcar os istrigger do seu collider e interagir com o isKinematic dentro da void OnTriggerEnter
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: [AJUDA] Desativar/Ativar rigidbody
John Rambo escreveu:Sim vc tem que marcar os istrigger do seu collider e interagir com o isKinematic dentro da void OnTriggerEnter
Não consegui fazer com que venha a funcionar, no caso o meu script é esse:
- Código:
using UnityEngine;
using System.Collections;
using UnityStandardAssets.ImageEffects;
// Va em Edit > Project Settings > Graphics e no always adicione "GlassStainedBumpDistort"
[RequireComponent(typeof(Fisheye))]
[RequireComponent(typeof(Blur))]
[RequireComponent(typeof(SphereCollider))]
[RequireComponent(typeof(Rigidbody))]
[RequireComponent(typeof(EdgeDetection))]
[RequireComponent(typeof(Vortex))]
[RequireComponent(typeof(AudioSource))]
public class Controlador : MonoBehaviour{
private bool revert, revert2, saiuDaAgua, temSunShafts;
private float cronometro,cronometro2, cronometroGotas;
public Texture TexturaPingos;
public string TagAgua = "AGUA";
public Color corAgua = new Color32 (15, 150, 125, 0);
[Range(0.5f,1.5f)]
public float Distorcao = 1;
[Range(0.0f,0.2f)]
public float velocidadeDistorc = 0.15f;
[Range(0.0f, 0.9f)]
public float intensidadeCor = 0.3f;
[Range(0,5)]
public int DistanciaDeVisib = 2;
[Range(0,10)]
public float Visibilidade = 7;
[Range(0,5)]
public float IntensidadeSol = 3;
public AudioClip somEntrando, somSaindo, somSubmerso;
private GameObject objetoSomSub;
private GameObject planoGotas;
private AudioSource _audSourc;
private Fisheye _fisheye;
private Blur _blur;
private EdgeDetection _edge;
private Vortex _vortex;
private SunShafts _sunShafts;
private float intSolInicial;
void Start (){
objetoSomSub = new GameObject ();
objetoSomSub.AddComponent (typeof(AudioSource));
objetoSomSub.GetComponent<AudioSource> ().loop = true;
objetoSomSub.transform.localPosition = new Vector3 (0, 0, 0);
objetoSomSub.GetComponent<AudioSource> ().clip = somSubmerso;
objetoSomSub.transform.parent = transform;
objetoSomSub.SetActive (false);
//
_fisheye = GetComponent<Fisheye> ();
_blur = GetComponent<Blur> ();
_edge = GetComponent<EdgeDetection> ();
_vortex = GetComponent<Vortex> ();
//
GetComponent<SphereCollider> ().radius = 0.005f;
GetComponent<SphereCollider> ().isTrigger = false;
GetComponent<Rigidbody> ().isKinematic = true;
GetComponent<Camera> ().nearClipPlane = 0.01f;
//
_blur.iterations = 5 - DistanciaDeVisib;
_blur.blurSpread = 1-(Visibilidade/10);
//
_vortex.radius = new Vector2 (1, 1);
_vortex.center = new Vector2 (0.5f, 0.5f);
//
_edge.mode = EdgeDetection.EdgeDetectMode.TriangleLuminance;
_edge.lumThreshold = 0;
_edge.sampleDist = 0;
_edge.edgesOnly = intensidadeCor;
_edge.edgesOnlyBgColor = corAgua;
//
_blur.enabled = false;
_fisheye.enabled = false;
_edge.enabled = false;
_vortex.enabled = false;
//
planoGotas = GameObject.CreatePrimitive(PrimitiveType.Plane);
Destroy (planoGotas.GetComponent<MeshCollider> ());
planoGotas.transform.localScale = new Vector3 (0.02f, 0.02f, 0.02f);
planoGotas.transform.parent = transform;
planoGotas.transform.localPosition = new Vector3 (0, 0, 0.05f);
planoGotas.transform.localEulerAngles = new Vector3 (90, 180, 0);
planoGotas.GetComponent<Renderer>().material.shader = Shader.Find("FX/Glass/Stained BumpDistort");
planoGotas.GetComponent<Renderer> ().material.SetTexture ("_BumpMap", TexturaPingos);
planoGotas.GetComponent<Renderer> ().material.SetFloat ("_BumpAmt", 0);
//
if (GetComponent<SunShafts> () != null) {
temSunShafts = true;
_sunShafts = GetComponent<SunShafts> ();
intSolInicial = _sunShafts.sunShaftIntensity;
} else {
temSunShafts = false;
}
//
_audSourc = GetComponent<AudioSource> ();
}
void Update (){
if (revert == false) {
cronometro += Time.deltaTime*velocidadeDistorc;
}
if (cronometro > 0.5f) {
revert = true;
}
if (revert == true) {
cronometro -= Time.deltaTime*velocidadeDistorc;
}
if (cronometro < 0) {
revert = false;
}
//
if (revert2 == false) {
cronometro2 += Time.deltaTime*velocidadeDistorc*2;
}
if (cronometro2 > 2) {
revert2 = true;
}
if (revert2 == true) {
cronometro2 -= Time.deltaTime*velocidadeDistorc*2;
}
if (cronometro2 < -1) {
revert2 = false;
}
_vortex.center = new Vector2(cronometro2,0.5f);
_vortex.angle = ((cronometro * 20) - 10)*(Distorcao*2);
_fisheye.strengthX = (cronometro/2)*Distorcao;
_fisheye.strengthY = 0.5f-cronometro*Distorcao;
// PROPRIEDADES DO SHADER
if (saiuDaAgua == true) {
cronometroGotas -= Time.deltaTime*20;
planoGotas.GetComponent<Renderer> ().material.SetTextureOffset ("_BumpMap", new Vector2 (0, -cronometroGotas/100));
planoGotas.GetComponent<Renderer> ().material.SetFloat ("_BumpAmt", cronometroGotas);
if(cronometroGotas < 0){
cronometroGotas = 0;
saiuDaAgua = false;
planoGotas.GetComponent<Renderer> ().material.SetFloat ("_BumpAmt", 0);
}
}
}
void OnTriggerEnter (Collider colisor){
if (colisor.gameObject.CompareTag (TagAgua)) {
_blur.enabled = true;
_fisheye.enabled = true;
_edge.enabled = true;
_vortex.enabled = true;
saiuDaAgua = false;
planoGotas.GetComponent<Renderer> ().material.SetFloat ("_BumpAmt", 0);
if(temSunShafts == true){
_sunShafts.sunShaftIntensity = _sunShafts.sunShaftIntensity*IntensidadeSol;
}
_audSourc.PlayOneShot(somEntrando);
objetoSomSub.SetActive (true);
}
}
void OnTriggerExit (Collider colisor){
if (colisor.gameObject.CompareTag (TagAgua)) {
_blur.enabled = false;
_fisheye.enabled = false;
_edge.enabled = false;
_vortex.enabled = false;
saiuDaAgua = true;
cronometroGotas = 40;
if(temSunShafts == true){
_sunShafts.sunShaftIntensity = intSolInicial;
}
_audSourc.PlayOneShot(somSaindo);
objetoSomSub.SetActive (false);
}
}
}
Script de efeito submerso do Marcos..
Como eu faria pra ativar o rigidbody do script apenas quando viesse a entrar no collider com a TAG "AGUA" e ao sair desativasse o mesmo?
WiredD- Avançado
- PONTOS : 3325
REPUTAÇÃO : 14
Respeito as regras :
Re: [AJUDA] Desativar/Ativar rigidbody
Por acaso o que voce quer fazer é isso ???
https://www.schultzgames.com/t1379-tutorial-fpscontroller-nadar-e-mergulhar-junto-com-efeito-submerso
https://www.schultzgames.com/t1379-tutorial-fpscontroller-nadar-e-mergulhar-junto-com-efeito-submerso
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: [AJUDA] Desativar/Ativar rigidbody
John Rambo escreveu:Por acaso o que voce quer fazer é isso ???
schultzgames.com/t1379-tutorial-fpscontroller-nadar-e-mergulhar-junto-com-efeito-submerso
Não kkkk, No caso eu já fiz os 2 sistemas, agora quero implementar pra que ative o rigd ao entrar no colisor e "desative" ao sair do mesmo, no qual tá com a TAG "AGUA"
WiredD- Avançado
- PONTOS : 3325
REPUTAÇÃO : 14
Respeito as regras :
Re: [AJUDA] Desativar/Ativar rigidbody
WiredD escreveu:John Rambo escreveu:Por acaso o que voce quer fazer é isso ???
schultzgames.com/t1379-tutorial-fpscontroller-nadar-e-mergulhar-junto-com-efeito-submerso
Não kkkk, No caso eu já fiz os 2 sistemas, agora quero implementar pra que ative o rigd ao entrar no colisor e "desative" ao sair do mesmo, no qual tá com a TAG "AGUA"
Você não vai conseguir fazer isto usando CharacterController... terá trocentos e 1 problemas diferentes.
Eu até pensei em fazer o script para se adaptar a controladores de diferentes tipos, mas seria um script muito longo.
Diga, para que quer ter o rigidbody sem kinematic dentro da água?
Re: [AJUDA] Desativar/Ativar rigidbody
MarcosSchultz escreveu:WiredD escreveu:John Rambo escreveu:Por acaso o que voce quer fazer é isso ???
schultzgames.com/t1379-tutorial-fpscontroller-nadar-e-mergulhar-junto-com-efeito-submerso
Não kkkk, No caso eu já fiz os 2 sistemas, agora quero implementar pra que ative o rigd ao entrar no colisor e "desative" ao sair do mesmo, no qual tá com a TAG "AGUA"
Você não vai conseguir fazer isto usando CharacterController... terá trocentos e 1 problemas diferentes.
Eu até pensei em fazer o script para se adaptar a controladores de diferentes tipos, mas seria um script muito longo.
Diga, para que quer ter o rigidbody sem kinematic dentro da água?
Na verdade o problema com ridigbody, é que ele dá conflito com meu sistema de inventário ao coletar os itens no chão..
WiredD- Avançado
- PONTOS : 3325
REPUTAÇÃO : 14
Respeito as regras :
Re: [AJUDA] Desativar/Ativar rigidbody
Como que é esse seu sistema de inventário? Sistema de coleta com Rigidbody não aparenta ser uma boa O.o
Re: [AJUDA] Desativar/Ativar rigidbody
MarcosSchultz escreveu:Como que é esse seu sistema de inventário? Sistema de coleta com Rigidbody não aparenta ser uma boa O.o
É um sistema de inv avançado do canal "Unity 3D Survival" não sei como funciona até pq estou estudando os codes ainda.. Mais se quiser download pra dar uma olhada tá ai:
https://mega.nz/#F!ywUwwRib!kuDIv1EyBdoLDlNxFQEvzQ
Só baixar tudo como zip
WiredD- Avançado
- PONTOS : 3325
REPUTAÇÃO : 14
Respeito as regras :
Tópicos semelhantes
» Ativar e desativar o emission
» [AJUDA]Como ativar/desativar todos os GameObjects de uma array
» ATIVAR RIGIDBODY AO ENTRAR EM TRIGGER
» Ativar e desativar botão UI
» Desativar e ativar Player
» [AJUDA]Como ativar/desativar todos os GameObjects de uma array
» ATIVAR RIGIDBODY AO ENTRAR EM TRIGGER
» Ativar e desativar botão UI
» Desativar e ativar Player
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos