SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Jogo Mobile - Ultimate Flight Simulator - Real World SDK
Unity - FPS e CPU ???
Usar microfone na Unity
Jogo ficando escuro quando faço a Build pela cena menu
Dúvida sobre movimentação do personagem
[RESOLVIDO] ACESSAR SCRIPT DE OUTRO GAMEOBJECT
Para eu ter shader em meu projeto eu tenho que usar o hdrp ou o 3d padrao?
Rotate Camera Mobile
Sou modelador 3d (!!! Arquitetonico!!!) Disponivel !!!!!!
Preciso de alguém que saiba programação e Raycast
Servidor/cliente usando sockets
Assets carregados com addressables causando erro na versão "buildada"
Jogo multiplayer com salas - não vai para o lobby
Texto - Não escreve no 'play'. Clica mais não digita.
Error Unity Vulkan - Out of memory! (allocating memory for image)
Câmera Não esta renderizando na segunda janela.
Movimento da Câmera No Android
[RESOLVIDO] - Unity não está mais funcionando o "Build and Run"
Precisa de modelador com ou sem experiência
Duvida com "mesclagem" de animação
[TUTORIAL] Como fazer uma gota de água na Unity
Missoes Aparecerem aleatoriamente do nada
Dúvida pafra IOS
botoes não esta funcionando corretamente nem a fisica?
Duvida com NavMeshAgent
COMO AUMENTAR E DIMINUÍ A SENSIBILIDADE DO TOQUE POR CÓDICO (MOBILE)
A Licença da Unity só funciona se eu tiver Internet
Problema com OnTriggerEnter
Transparência ao colidir
bool para evitar de salvar frames repetido
Unity - Transições no AnimatorController rodando errado
problemas com "wall Jump" , atribuir força ao eixo X
Meu Jogo ja Esta Pronto! EXPERIMENTEM!!
JOSTICK NAO SE MOVE
botoes para mobile
ERRO NO SCRIPT FOME E SEDE ETC
CORTAR ARVORES E DROPAR
Configurar sistema
Unity - Sugestões da Loja
Standard Assets para UNITY 5 em ".unitypackage"
Problema com o Shader
[TUTORIAL] Sistema Simples de Falas
Velocímetro Bugado
Como faço para alinhar uma textura na posição absoluta do mundo no shader
Sobre o Tutorial de Cortar Arvores
Erro Mov Player
[TUTORIAL] VELOCIMETRO DE PONTEIRO
[TUTORIAL] Ligar/Desligar luz por Interruptor
Sistema de lampadas
Conversor de movimento do Unity para o MMD [Ajuda]
Script de configurações não esta funcionando corretamente
CAMERA BUGANDO NA TRANSIÇÃO DE CENA
Volante girando errado [AJUDA]
Novo Asset Sistema de Portas e Chaves
ERRO NAS RODAS DO CARRO
[TUTORIAL] Sistema de câmera em primeira pessoa SIMPLES
AJUDA PARA UM SISTEMA DE CHECKPOINT
Jogo offline com Loja?
Unity -TextMeshProUGUI- 1 das coisas q estão deixando a scene lenta p abrir
Detectar quando o animation curve chega no final
Problema com compilação para Android na Unity 2019.4.35
Aplicativo para IOS
Árvores feitas na Unity
RECRUTAMENTO WAR CORE FPS
[RESOLVIDO] Unity - Scrollbar não funciona
[TUTORIAL] AI que cria scripts para você, inclusive scripts para Unity !!!!
[RESOLVIDO] Animando Image na Unity não funciona
Hospedar um jogo multiplay na itch.io
Script para detetectar o movimento do player
Alguém ajuda com um erro por favor? PSDImporter.cs
[RESOLVIDO] - Unity - Rotação da Câmera - Mathf.Clamp não funciona
Alterar textura .unity3d
Comportamento do movimento do inimigo. Sair do caminho e Fugir
Procuro uma equipe
Ajuda Com Sala de Jogo Multiplayer
COMO FAZER A PORTA ABRIR SÓ EMPURRANDO ELA COM O PLAYER?
Visual Studio - Vend os Scripts na Aba "Modo de Exibição de Classe" soltos
app fica fechendo após mobile notification
[RESOLVIDO] Controlar dois player dentro de um jogo multiplay usando mirror
Unity - O Jogo fecha quando vai abrir a Scene
[TUTORIAL] Mudando material
Procuro programador Unity para jogo 2D
AJUDA REALISTIC CAR CONTROLLER
Chama para isqueiro
[RESOLVIDO] Ajuda para destruir objeto
Unity - Sistema de Giro da Tela - Ajuda pfv!
Unity - Touch na Tela do Celular
Dawn Of Hell - Horror Game BR (2022-2023)
Unity - Jogo online ou offline?
ANIMAÇÃO INIMIGO ESTÁ INDO PRA TUDO QUANTO É LADO
[RESOLVIDO] Erro de Script no Android
Bundle Assets, Resources, e Addressables
Jogo online (qual a melhor opção?)
Dúvida sobre como criar o inimigo IA!
Unity dando pause no jogo a cada 4 segundos
bom dia amigos eu sou meio lego nos scripts será que alguem pode me ajudar
JOGO "CHALLENGE" FINALIZADO E DISPONÍVEL PARA BAIXAR.
error CS0246
[TUTORIAL]Como Chamar Um Método Usando Uma String como Parametro
Dom Jun 04, 2023 2:41 pm
Ter maio 30, 2023 7:28 pm
Ter maio 30, 2023 6:04 am
Seg maio 29, 2023 7:53 pm
Sáb maio 27, 2023 3:11 pm
Sex maio 26, 2023 4:59 pm
Sex maio 26, 2023 11:27 am
Qui maio 25, 2023 10:33 am
Sáb maio 20, 2023 12:25 pm
Ter maio 16, 2023 5:43 pm
Ter maio 16, 2023 5:42 pm
Ter maio 09, 2023 7:42 pm
Seg maio 08, 2023 7:13 am
Seg maio 08, 2023 6:38 am
Seg maio 08, 2023 1:49 am
Sáb maio 06, 2023 11:44 pm
Sáb maio 06, 2023 6:42 pm
Sáb maio 06, 2023 1:35 am
Qua maio 03, 2023 12:32 pm
Seg maio 01, 2023 8:51 pm
Seg maio 01, 2023 12:29 pm
Dom Abr 30, 2023 8:49 pm
Dom Abr 30, 2023 5:06 pm
Sáb Abr 29, 2023 4:05 pm
Qui Abr 27, 2023 4:39 pm
Qui Abr 27, 2023 12:40 am
Ter Abr 25, 2023 5:33 pm
Ter Abr 25, 2023 10:23 am
Dom Abr 23, 2023 12:11 am
Sáb Abr 22, 2023 4:27 am
Sex Abr 21, 2023 11:38 pm
Sex Abr 21, 2023 10:21 pm
Qui Abr 20, 2023 4:57 pm
Qui Abr 20, 2023 12:28 pm
Qua Abr 19, 2023 3:03 pm
Qua Abr 19, 2023 1:52 pm
Qua Abr 19, 2023 11:59 am
Qua Abr 19, 2023 11:54 am
Sáb Abr 15, 2023 8:13 pm
Sex Abr 14, 2023 7:43 am
Qui Abr 13, 2023 4:36 pm
Qui Abr 13, 2023 4:36 pm
Qua Abr 12, 2023 6:05 pm
Ter Abr 11, 2023 6:22 pm
Seg Abr 10, 2023 7:33 pm
Seg Abr 10, 2023 3:25 pm
Dom Abr 09, 2023 8:53 pm
Dom Abr 09, 2023 7:26 pm
Dom Abr 09, 2023 5:59 pm
Dom Abr 09, 2023 12:06 am
Sex Abr 07, 2023 7:24 pm
Qui Abr 06, 2023 6:45 am
Qua Abr 05, 2023 9:24 am
Ter Abr 04, 2023 4:55 pm
Ter Abr 04, 2023 1:00 pm
Dom Abr 02, 2023 11:52 pm
Sex Mar 31, 2023 12:50 pm
Sex Mar 31, 2023 11:03 am
Sex Mar 31, 2023 10:05 am
Qua Mar 29, 2023 7:48 pm
Ter Mar 28, 2023 10:50 pm
Ter Mar 28, 2023 9:19 am
Seg Mar 27, 2023 10:16 am
Dom Mar 26, 2023 7:39 pm
Qui Mar 23, 2023 4:52 pm
Ter Mar 21, 2023 11:20 pm
Ter Mar 21, 2023 8:52 pm
Sáb Mar 18, 2023 8:41 pm
Sex Mar 17, 2023 3:12 pm
Sex Mar 17, 2023 1:24 pm
Seg Mar 13, 2023 10:45 pm
Seg Mar 13, 2023 9:48 pm
Seg Mar 13, 2023 8:24 pm
Seg Mar 13, 2023 7:17 pm
Dom Mar 12, 2023 10:27 pm
Dom Mar 12, 2023 7:22 pm
Sex Mar 10, 2023 8:26 pm
Sex Mar 10, 2023 8:00 pm
Qui Mar 09, 2023 9:05 am
Ter Mar 07, 2023 2:27 pm
Sex Mar 03, 2023 6:47 pm
Sex Mar 03, 2023 12:01 am
Qui Mar 02, 2023 4:00 pm
Qui Mar 02, 2023 1:35 pm
Qua Mar 01, 2023 5:47 pm
Qua Mar 01, 2023 2:11 am
Seg Fev 27, 2023 11:08 pm
Seg Fev 27, 2023 7:19 pm
Dom Fev 26, 2023 11:49 pm
Dom Fev 26, 2023 8:29 pm
Dom Fev 26, 2023 7:47 pm
Dom Fev 26, 2023 7:46 pm
Dom Fev 26, 2023 6:08 pm
Sáb Fev 25, 2023 8:16 pm
Seg Fev 13, 2023 7:02 pm
Seg Fev 13, 2023 2:44 am
Dom Fev 12, 2023 9:57 pm
Dom Fev 12, 2023 2:19 pm
Sáb Fev 11, 2023 1:01 pm



































































































[RESOLVIDO] Não consigo ativar/desativar um script através de outro

2 participantes

Ir para baixo

Resolvido [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por Rangel Oblivion Sáb Mar 05, 2022 5:14 pm

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HabilitarComponente31 : MonoBehaviour
{
    public FirstPersonController firstPersonController;

    public void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            firstPersonController.GetComponent<FirstPersonController>().enabled = true;
        }
    }

    void OnTriggerExit(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            firstPersonController.GetComponent<FirstPersonController>().enabled = false;
    }
}
}
Código:
using System;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
using UnityStandardAssets.Utility;
using Random = UnityEngine.Random;

[Serializable]
public class SomPassos{
 public string tagchao;
 public AudioClip[] audios;
}

namespace UnityStandardAssets.Characters.FirstPerson
{
    [RequireComponent(typeof (CharacterController))]
    [RequireComponent(typeof (AudioSource))]
    public class FirstPersonController : MonoBehaviour
    {
        [SerializeField] private bool m_IsWalking;
        [SerializeField] private float m_WalkSpeed;
        [SerializeField] private float m_RunSpeed;
        [SerializeField] [Range(0f, 1f)] private float m_RunstepLenghten;
        [SerializeField] private float m_JumpSpeed;
        [SerializeField] private float m_StickToGroundForce;
        [SerializeField] private float m_GravityMultiplier;
        [SerializeField] private MouseLook m_MouseLook;
        [SerializeField] private bool m_UseFovKick;
        [SerializeField] private FOVKick m_FovKick = new FOVKick();
        [SerializeField] private bool m_UseHeadBob;
        [SerializeField] private CurveControlledBob m_HeadBob = new CurveControlledBob();
        [SerializeField] private LerpControlledBob m_JumpBob = new LerpControlledBob();
        [SerializeField] private float m_StepInterval;
        
 [Space(10)]
 public AudioClip[] SomPassosPadrao;
 public SomPassos[] SomDosPassos;
 string tagAtual;
 [Space(10)]

 [SerializeField] private AudioClip m_JumpSound;           // the sound played when character leaves the ground.
        [SerializeField] private AudioClip m_LandSound;           // the sound played when character touches back on ground.

        private Camera m_Camera;
        private bool m_Jump;
        private float m_YRotation;
        private Vector2 m_Input;
        private Vector3 m_MoveDir = Vector3.zero;
        private CharacterController m_CharacterController;
        private CollisionFlags m_CollisionFlags;
        private bool m_PreviouslyGrounded;
        private Vector3 m_OriginalCameraPosition;
        private float m_StepCycle;
        private float m_NextStep;
        private bool m_Jumping;
        private AudioSource m_AudioSource;

        // Use this for initialization
        private void Start()
        {
            m_CharacterController = GetComponent<CharacterController>();
            m_Camera = Camera.main;
            m_OriginalCameraPosition = m_Camera.transform.localPosition;
            m_FovKick.Setup(m_Camera);
            m_HeadBob.Setup(m_Camera, m_StepInterval);
            m_StepCycle = 0f;
            m_NextStep = m_StepCycle/2f;
            m_Jumping = false;
            m_AudioSource = GetComponent<AudioSource>();
 m_MouseLook.Init(transform , m_Camera.transform);
        }


        // Update is called once per frame
        private void Update()
        {
            RotateView();
            // the jump state needs to read here to make sure it is not missed
            if (!m_Jump)
            {
                m_Jump = CrossPlatformInputManager.GetButtonDown("Jump");
            }

            if (!m_PreviouslyGrounded && m_CharacterController.isGrounded)
            {
                StartCoroutine(m_JumpBob.DoBobCycle());
                PlayLandingSound();
                m_MoveDir.y = 0f;
                m_Jumping = false;
            }
            if (!m_CharacterController.isGrounded && !m_Jumping && m_PreviouslyGrounded)
            {
                m_MoveDir.y = 0f;
            }

            m_PreviouslyGrounded = m_CharacterController.isGrounded;
        }


        private void PlayLandingSound()
        {
            m_AudioSource.clip = m_LandSound;
            m_AudioSource.Play();
            m_NextStep = m_StepCycle + .5f;
        }


        private void FixedUpdate()
        {
            float speed;
            GetInput(out speed);
            // always move along the camera forward as it is the direction that it being aimed at
            Vector3 desiredMove = transform.forward*m_Input.y + transform.right*m_Input.x;

            // get a normal for the surface that is being touched to move along it
            RaycastHit hitInfo;
            Physics.SphereCast(transform.position, m_CharacterController.radius, Vector3.down, out hitInfo,
                               m_CharacterController.height/2f, Physics.AllLayers, QueryTriggerInteraction.Ignore);
            desiredMove = Vector3.ProjectOnPlane(desiredMove, hitInfo.normal).normalized;

            m_MoveDir.x = desiredMove.x*speed;
            m_MoveDir.z = desiredMove.z*speed;


            if (m_CharacterController.isGrounded)
            {
                m_MoveDir.y = -m_StickToGroundForce;

                if (m_Jump)
                {
                    m_MoveDir.y = m_JumpSpeed;
                    PlayJumpSound();
                    m_Jump = false;
                    m_Jumping = true;
                }
            }
            else
            {
                m_MoveDir += Physics.gravity*m_GravityMultiplier*Time.fixedDeltaTime;
            }
            m_CollisionFlags = m_CharacterController.Move(m_MoveDir*Time.fixedDeltaTime);

            ProgressStepCycle(speed);
            UpdateCameraPosition(speed);

            m_MouseLook.UpdateCursorLock();
        }


        private void PlayJumpSound()
        {
            m_AudioSource.clip = m_JumpSound;
            m_AudioSource.Play();
        }


        private void ProgressStepCycle(float speed)
        {
            if (m_CharacterController.velocity.sqrMagnitude > 0 && (m_Input.x != 0 || m_Input.y != 0))
            {
                m_StepCycle += (m_CharacterController.velocity.magnitude + (speed*(m_IsWalking ? 1f : m_RunstepLenghten)))*
                             Time.fixedDeltaTime;
            }

            if (!(m_StepCycle > m_NextStep))
            {
                return;
            }

            m_NextStep = m_StepCycle + m_StepInterval;

            PlayFootStepAudio();
        }


        private void PlayFootStepAudio()
        {
            if (!m_CharacterController.isGrounded)
            {
                return;
            }

 if (tagAtual != "Untagged") {
 for (int x = 0; x < SomDosPassos.Length; x++) {
 if (tagAtual == SomDosPassos [x].tagchao) {
 if (SomDosPassos [x].audios.Length > 1) {
 int n = Random.Range (1, SomDosPassos [x].audios.Length);
 m_AudioSource.clip = SomDosPassos [x].audios [n];
 m_AudioSource.PlayOneShot (m_AudioSource.clip);

 SomDosPassos [x].audios [n] = SomDosPassos [x].audios [0];
 SomDosPassos [x].audios [0] = m_AudioSource.clip;
 } else {
 m_AudioSource.clip = SomDosPassos [x].audios [0];
 m_AudioSource.PlayOneShot (m_AudioSource.clip);
 }
 break;
 }
 }
 }
 else {
 if (SomPassosPadrao.Length > 1) {
 int n = Random.Range (1, SomPassosPadrao.Length);
 m_AudioSource.clip = SomPassosPadrao [n];
 m_AudioSource.PlayOneShot (m_AudioSource.clip);

 SomPassosPadrao [n] = SomPassosPadrao [0];
 SomPassosPadrao [0] = m_AudioSource.clip;
 } else {
 m_AudioSource.clip = SomPassosPadrao[0];
 m_AudioSource.PlayOneShot (m_AudioSource.clip);
 }
 }
          
        }


        private void UpdateCameraPosition(float speed)
        {
            Vector3 newCameraPosition;
            if (!m_UseHeadBob)
            {
                return;
            }
            if (m_CharacterController.velocity.magnitude > 0 && m_CharacterController.isGrounded)
            {
                m_Camera.transform.localPosition =
                    m_HeadBob.DoHeadBob(m_CharacterController.velocity.magnitude +
                                      (speed*(m_IsWalking ? 1f : m_RunstepLenghten)));
                newCameraPosition = m_Camera.transform.localPosition;
                newCameraPosition.y = m_Camera.transform.localPosition.y - m_JumpBob.Offset();
            }
            else
            {
                newCameraPosition = m_Camera.transform.localPosition;
                newCameraPosition.y = m_OriginalCameraPosition.y - m_JumpBob.Offset();
            }
            m_Camera.transform.localPosition = newCameraPosition;
        }


        private void GetInput(out float speed)
        {
            // Read input
            float horizontal = CrossPlatformInputManager.GetAxis("Horizontal");
            float vertical = CrossPlatformInputManager.GetAxis("Vertical");

            bool waswalking = m_IsWalking;

#if !MOBILE_INPUT
            // On standalone builds, walk/run speed is modified by a key press.
            // keep track of whether or not the character is walking or running
            m_IsWalking = !Input.GetKey(KeyCode.LeftShift);
#endif
            // set the desired speed to be walking or running
            speed = m_IsWalking ? m_WalkSpeed : m_RunSpeed;
            m_Input = new Vector2(horizontal, vertical);

            // normalize input if it exceeds 1 in combined length:
            if (m_Input.sqrMagnitude > 1)
            {
                m_Input.Normalize();
            }

            // handle speed change to give an fov kick
            // only if the player is going to a run, is running and the fovkick is to be used
            if (m_IsWalking != waswalking && m_UseFovKick && m_CharacterController.velocity.sqrMagnitude > 0)
            {
                StopAllCoroutines();
                StartCoroutine(!m_IsWalking ? m_FovKick.FOVKickUp() : m_FovKick.FOVKickDown());
            }
        }


        private void RotateView()
        {
            m_MouseLook.LookRotation (transform, m_Camera.transform);
        }


        private void OnControllerColliderHit(ControllerColliderHit hit)
        {
 tagAtual = hit.transform.tag;
            Rigidbody body = hit.collider.attachedRigidbody;
            //dont move the rigidbody if the character is on top of it
            if (m_CollisionFlags == CollisionFlags.Below)
            {
                return;
            }

            if (body == null || body.isKinematic)
            {
                return;
            }
            body.AddForceAtPosition(m_CharacterController.velocity*0.1f, hit.point, ForceMode.Impulse);
        }
    }
}

Se souberem o que há de errado eu agradeço pela ajuda.
Rangel Oblivion
Rangel Oblivion
MembroAvançado

Masculino PONTOS : 2099
REPUTAÇÃO : 53
Idade : 32
Áreas de atuação : Tradução
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

http://rangeloblivion.blogspot.com/

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por WLCS22 Sáb Mar 05, 2022 7:08 pm

Debuga "HabilitarComponente31", vê se o Script está entrando nos blocos certinho
WLCS22
WLCS22
MembroAvançado

PONTOS : 1231
REPUTAÇÃO : 53
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por Rangel Oblivion Sáb Mar 05, 2022 7:18 pm

Me perdoe a ignorância, mas como se faz isso? É na Unity ou no editor de script?
Rangel Oblivion
Rangel Oblivion
MembroAvançado

Masculino PONTOS : 2099
REPUTAÇÃO : 53
Idade : 32
Áreas de atuação : Tradução
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

http://rangeloblivion.blogspot.com/

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por WLCS22 Sáb Mar 05, 2022 8:33 pm

Desculpe a demora, só vi agr.

vc faz prints mesmo, tipo assim:


Código:
public class HabilitarComponente31 : MonoBehaviour
{
    public FirstPersonController firstPersonController;

    public void OnTriggerEnter(Collider other)
    {

        // Pra vc saber qual o nome do "other"
        print("HabilitarComponente31 ::: OnTriggerEnter() ::: other ::: " + other);
 
        if (other.CompareTag("Player"))
        {
            // Pra ver se entrou nesse bloco
            print("HabilitarComponente31 ::: OnTriggerEnter() ::: other ::: Entrou nesse bloco");
 
            firstPersonController.GetComponent<FirstPersonController>().enabled = true;
        }
    }

    void OnTriggerExit(Collider other)
    {

        // Pra vc saber qual o nome do "other"
        print("HabilitarComponente31 ::: OnTriggerExit() ::: other ::: " + other);
 
        if (other.CompareTag("Player"))
        {
            // Pra ver se entrou nesse bloco
            print("HabilitarComponente31 ::: OnTriggerExit() ::: other ::: Entrou nesse bloco");
 
            firstPersonController.GetComponent<FirstPersonController>().enabled = false;
        }
    }
}

Eu debugo meu código assim, coloco o nome da Classe, depois do Método e depois da variável que eu quero saber o que está acontecendo com ela.

Esses prints vc vai ver na aba "Console" na Unity. Geralmente essa aba fica junto da aba "Project" que fica do lado esquerdo da tela, no canto inferior. Isso é pra vc saber como o fluxo do seu Script está, o que está rodando ou não.. enfim.

Pode ser que o enabled não esteja funcionando por que vc não está nem entrando no bloco que vc checa o "Player".

Dá retorno aqui pra saber o resultado.
WLCS22
WLCS22
MembroAvançado

PONTOS : 1231
REPUTAÇÃO : 53
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por Rangel Oblivion Sáb Mar 05, 2022 11:28 pm

Valeu pelas dicas, no console da Unity não aparece nada sobre o script, o Visual Studio não diz que há algo errado. É estranho, pois eu uso esse mesmo script e funciona normalmente, mas pare o FirstPersonController não funciona. Abaixo está outra variação do mesmo script.


Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HablitarComponente2 : MonoBehaviour
{
    public GameObjectControler myGameObjectControler;

    public void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            myGameObjectControler.GetComponent<GameObjectControler>().enabled = true;
        }
    }

    void OnTriggerExit(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            myGameObjectControler.GetComponent<GameObjectControler>().enabled = false;
    }
}
}
Rangel Oblivion
Rangel Oblivion
MembroAvançado

Masculino PONTOS : 2099
REPUTAÇÃO : 53
Idade : 32
Áreas de atuação : Tradução
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

http://rangeloblivion.blogspot.com/

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por WLCS22 Sáb Mar 05, 2022 11:56 pm

Quando vc coloca o Print, o que estiver dentro dos parâmetros será impresso no Console. Se vc diz "no console da Unity não aparece nada sobre o script" o que eu entendo é que o Trigger não está nem funcionando. Vc tem certeza que marcou o Trigger no Box Collider?


Última edição por WLCS22 em Dom Mar 06, 2022 1:11 am, editado 4 vez(es)
WLCS22
WLCS22
MembroAvançado

PONTOS : 1231
REPUTAÇÃO : 53
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por WLCS22 Sáb Mar 05, 2022 11:59 pm

Ahh já sei o que pode ser tbm. Vc tem que colocar o Script em um Objeto na Scene (pode ser um GameObject Empty mesmo), linkar esse Objeto a um atributo do tipo GameObject em "HablitarComponente2" (sugeri "objQueContemOScript") e depois disso eh que vc pega o Componente "GameObjectControler" dentro do Start():

Código:
public class HablitarComponente2 : MonoBehaviour
{
        public GameObject objQueContemOScript;// O Objeto que está na Scene
        public GameObjectControler myGameObjectControler;// O outro Script
 
        void Start(){
 
             // É assim que vc vai pegar o outro Script
             myGameObjectControler = objQueContemOScript.GetComponent<GameObjectControler>();
        }

        public void OnTriggerEnter(Collider other)
        {
             if (other.CompareTag("Player"))
             {
                  // Pra vc saber o nome que está sendo pelo no "other"
                  print("HablitarComponente2 ::: OnTriggerEnter()");

                  myGameObjectControler.enabled = true;
             }
        }

        void OnTriggerExit(Collider other)
        {
             if (other.CompareTag("Player"))
            {        
                // Pra vc saber o nome que está sendo pelo no "other"
                print("HablitarComponente2 ::: OnTriggerExit()");
 
                myGameObjectControler.enabled = false;
           }
       }
}


Última edição por WLCS22 em Dom Mar 06, 2022 1:14 am, editado 4 vez(es)
WLCS22
WLCS22
MembroAvançado

PONTOS : 1231
REPUTAÇÃO : 53
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por WLCS22 Dom Mar 06, 2022 1:04 am

Conseguiu?
WLCS22
WLCS22
MembroAvançado

PONTOS : 1231
REPUTAÇÃO : 53
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por Rangel Oblivion Dom Mar 06, 2022 12:33 pm

Infelizmente ainda não obtive êxito, eu esqueci de mencionar que quando eu arrasto o FPSController para o seu lugar no script no inspector a coisa não funciona, não aparece aquele simbolo de proibido, um círculo com uma faixa na diagonal, eu até consigo colocá-lo ali, mas ele não permanece lá, é como se eu não tivesse feito nada.
Rangel Oblivion
Rangel Oblivion
MembroAvançado

Masculino PONTOS : 2099
REPUTAÇÃO : 53
Idade : 32
Áreas de atuação : Tradução
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

http://rangeloblivion.blogspot.com/

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por Rangel Oblivion Dom Mar 06, 2022 12:36 pm

WLCS22 escreveu:Quando vc coloca o Print, o que estiver dentro dos parâmetros será impresso no Console. Se vc diz "no console da Unity não aparece nada sobre o script" o que eu entendo é que o Trigger não está nem funcionando. Vc tem certeza que marcou o Trigger no Box Collider?
Sim, eu marquei a opção Trigger no Collider.
Rangel Oblivion
Rangel Oblivion
MembroAvançado

Masculino PONTOS : 2099
REPUTAÇÃO : 53
Idade : 32
Áreas de atuação : Tradução
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

http://rangeloblivion.blogspot.com/

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por WLCS22 Dom Mar 06, 2022 10:09 pm

Mas, tipo, vc conseguiu acessar o outro Script pra ativar/desativar ele?

Não estou entendendo que símbolo é esse que vc está falando no Inspector, esse "não aparece aquele simbolo de proibido, um círculo com uma faixa na diagonal".

Olha, quando eu fazia uma coisa no Script pra um certo personagem fazer certa ação e ele não fazia, sempre era uma bool que eu achava que estava, por exemplo, true, mas na verdade estava false, ou vice-versa.

Tipo, eu fiz uma bool de nome "podeSeDeslocar" e deixei ela true em um Método para que o personagem se desloque quando eu chamasse esse Método. Mas eu também deixei essa bool false em outro Método para usá-la quando eu quisesse que o personagem não se deslocasse. Acontecia que eu tava chamando o Método em que essa bool estava true, mas esquecia de cortar o fluxo no Update do Método em que essa bool estava false. Daí toda vez eu dava o comando pro personagem se deslocar (a bool true), ele nunca saia do lugar justamente por que o outro Método em que a bool estava false estava rodando no update ao mesmo tempo. Ciente disso eu tratava essa bool de forma a não ter esse conflito. Não sei se vc entendeu oq falei. Se entendeu, dá uma checada nas variáveis que vc está usando pra dar seus comandos.

Me diz se vc conseguiu acessar/ativar/desativar o outro script pra saber se o trigger está funcionando ou não.
WLCS22
WLCS22
MembroAvançado

PONTOS : 1231
REPUTAÇÃO : 53
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por Rangel Oblivion Seg Mar 07, 2022 12:26 pm

Para ser sincero eu entendo muito pouco de C# (quase nada) por isso mesmo que eu estava procurando alguém para fazer esse serviço para mim (unir ambos os scripts), pois eu não faço a mínima ideia de como fazer isso. Creio que o "problema" esteja no script do Player, pois outros podem ser chamados e ele não. Sobre o símbolo de proibido; ele aparece, por exemplo, se você pedir um Collider no script e tentar arrastar um Rigbody para lá. No meu caso, esse símbolo não aparece, porém, ao arrastar o GameObject contendo o FirstPersonController não ocorre nada, é como se eu não tivesse feito isso.
Rangel Oblivion
Rangel Oblivion
MembroAvançado

Masculino PONTOS : 2099
REPUTAÇÃO : 53
Idade : 32
Áreas de atuação : Tradução
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

http://rangeloblivion.blogspot.com/

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por WLCS22 Seg Mar 07, 2022 5:27 pm

WLCS22 escreveu:Ahh já sei o que pode ser tbm. Vc tem que colocar o Script em um Objeto na Scene (pode ser um GameObject Empty mesmo), linkar esse Objeto a um atributo do tipo GameObject em "HablitarComponente2" (sugeri "objQueContemOScript") e depois disso eh que vc pega o Componente "GameObjectControler" dentro do Start():

Código:
public class HablitarComponente2 : MonoBehaviour
{
        public GameObject objQueContemOScript;// O Objeto que está na Scene
        public GameObjectControler myGameObjectControler;// O outro Script
 
        void Start(){
 
             // É assim que vc vai pegar o outro Script
             myGameObjectControler = objQueContemOScript.GetComponent<GameObjectControler>();
        }

        public void OnTriggerEnter(Collider other)
        {
             if (other.CompareTag("Player"))
             {
                  // Pra vc saber o nome que está sendo pelo no "other"
                  print("HablitarComponente2 ::: OnTriggerEnter()");

                  myGameObjectControler.enabled = true;
             }
        }

        void OnTriggerExit(Collider other)
        {
             if (other.CompareTag("Player"))
            {        
                // Pra vc saber o nome que está sendo pelo no "other"
                print("HablitarComponente2 ::: OnTriggerExit()");
 
                myGameObjectControler.enabled = false;
           }
       }
}

Olha, "(unir ambos os scripts), pois eu não faço a mínima ideia de como fazer isso" eu já te mostrei como fazer  [RESOLVIDO] Não consigo ativar/desativar um script através de outro  1f446.  se não for isso, eu já não sei como te ajudar, infelizmente.
WLCS22
WLCS22
MembroAvançado

PONTOS : 1231
REPUTAÇÃO : 53
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por Rangel Oblivion Seg Mar 07, 2022 9:31 pm

Eu "consegui"... era pela falta disso aqui: (namespace UnityStandardAssets.Characters.FirstPerson) que não estava dando certo. Infelizmente a troca de scripts ficou bugada. Mas obrigado pelas dicas. O importante é aprender.
Rangel Oblivion
Rangel Oblivion
MembroAvançado

Masculino PONTOS : 2099
REPUTAÇÃO : 53
Idade : 32
Áreas de atuação : Tradução
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

http://rangeloblivion.blogspot.com/

Ir para o topo Ir para baixo

Resolvido Re: [RESOLVIDO] Não consigo ativar/desativar um script através de outro

Mensagem por WLCS22 Ter Mar 08, 2022 8:05 pm

Que bom que conseguiu! Com certeza "O importante é aprender."
WLCS22
WLCS22
MembroAvançado

PONTOS : 1231
REPUTAÇÃO : 53
Respeito as regras : [RESOLVIDO] Não consigo ativar/desativar um script através de outro  WvDYdlf

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos