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:
Tela de escolher um nome ativa quando sai e entra na cena de novo...
Fazer Objeto sair de 1 lado da camera e entrar do outro lado em seguida
[TUTORIAL] COMO CRIAR UM JOGO DE LUTA 2D UNITY 2021
Copiar um componente de um GameObject para outro já configurado?
Idioma automático por país??
[TUTORIAL] Sistema de diálogo/mensagens na Unity
Rotação ao colidir.
travar RigidBody2D através de codigo
Como resolver problema da mesh não renderizar após fazer a build
[RESOLVIDO] Trocar o áudio dependendo da tag do terreno
Funcionalidade Vuforia - UNITY 3D
RANDOMIZAR ATAQUES
Unity + Photon 2
Criar app pra mais de um idioma
Função de "aspirar" mobs, itens, etc.
[RESOLVIDO]GetKeyUp ativando sozinho
Posso controlar o wheelsCollider.rpm?
[TUTORIAL] Escolher a quantos FPS (fixos) o seu jogo deverá rodar.
Personagem dentro da agua
[RESOLVIDO] Sript de pegar itens no cenario
[TUTORIAL] Campo de visão dos inimigos (Enemy FOV) com Raycast ou OverlapSphere
Fazer o Player colar em uma base redonda
tem como altera o nome no forum
Como detectar se teclado ou controle foi conectado???
erro NO MONOBEHAVIOUR SCRIPTS IN THE FILE
Seleção de Personagem
[ASSET PACKAGE] Game Check Update
Adicionar mais um ataque ao inimigo.
Como faço para Camera ignorar um objeto?
Segundo Teaser do meu novo jogo galera, Sanatório Macabro. Em breve
[RESOLVIDO] VSCode não mostra erros nem identa o Código
Baixem meu jogo O Labirinto v1.25 completo e gratuito
Player girando e animação não executa
[RESOLVIDO] Problema com C# e Rigidbody
[RESOLVIDO] Recarregar arma.
Como acessar o Smoothness das texturas do terrain
Sistema de Tiro com Raycast
Velocidade com Button UI.
ERRO AO UPAR NA GOOGLE PLAY STORE
me ajuda por favor
Animaçoes não executa, nem a IDLE
Mini-Map
[TUTORIAL] Como o C# funciona
A Imagem do Objeto não muda
Animaçoes nao executa mais, nem a Idle
[RESOLVIDO] Como usar um Botao(GameObject) igual a um Botao(UI) no Mobile
Sistema de Tiro com Raycast
Algum modelador bom? Compro Modelagem
[RESOLVIDO] Rotação invertida, como resolvo isso??
carregamento de dados entre cenas
Blender bugado ????
AUDIO EM UM DETERMINADO MOMENTO
Dúvida sobre modificação do Event Trigger por scritpt
Carro dá spawn no ar
U2019 - Animações e efeitos após jogador levar hit? por outro jogador?
Não consigo Desabilitar um efeito especifico no pós processamento...
Como Desativar e mudar qualidade de sombra por código???
[TUTORIAL] Primeiro programa "complexo" em C# para iniciantes
Eu estou com dúvida de como instalar a unity com Unity Hub
Pulo "muito Alto"
rotação e aceleração.
Movimentação mobile.
Ativar botão
De Blender pra Unity - Cell Fracture não funciona!
sugestões de otimização?
Carregamento com porcentagem...
[RESOLVIDO] Blender Cell Fracture não aparece no Add-ons - Ajuda!
Movimentação - rotação
Erro Codigo de movimentação.
Cronometro 3,2,1 fica bugado ajuda aee...
[Problema] Ativo o Animator e o boneco não sai do lugar
Morre pausa e aparece botao pra reiniciar mas reinicia o jogo pausado
Script de movimentação e câmera não executa corretamente
FBX não gera sombra
[TUTORIAL] Mostrar Data e Hora atual do Computador em um texto
Sketchup pede para aumentar o projeto
Mudar cor da faixa de texto.
Mexer em variavel de objeto instanciado
Como utilizar o design pattern MVC na Unity?
[RESOLVIDO] RIGIDYBODY tá pulando sozinho pra longe. O que pode ser?
[RESOLVIDO] Compatibilidade e travamentos - unity android
Alguem sabe um meio pra fazer um habitat com criaturas?
[RESOLVIDO] Ajuda com script simples
[RESOLVIDO] Como trocar uma imagem ao clicar num botão em unity c#
[RESOLVIDO] Ponto A ao Ponto B em um determinado tempo
[RESOLVIDO] Duvida Unity (C#)
[RESOLVIDO] Bug no tittle screen
[RESOLVIDO] Erro CS0122
Projeto em desenvolvimento Yoda Runner.
[RESOLVIDO] Duvida Unity (C#)
Duvida com inimigo
Problemas com a colisão do unity
Carros não ficam no chão
Troca de Nivel
[TUTORIAL] Wheel Collider - como configurar corretamente.
Movimentação em SQM Unity 2D
Movimentaçao por SQM / UNITY 2D
[ FIND ME ] Game em Desenvolvimento
Como fazer um sistema de waypoints com espera.
Ontem à(s) 11:28 pm
Ontem à(s) 10:34 pm
Ontem à(s) 4:58 pm
Ontem à(s) 1:41 pm
Ontem à(s) 12:41 pm
Ontem à(s) 11:23 am
Sex Jul 30, 2021 2:19 pm
Sex Jul 30, 2021 12:07 pm
Sex Jul 30, 2021 8:50 am
Qui Jul 29, 2021 9:45 pm
Qui Jul 29, 2021 9:43 pm
Qui Jul 29, 2021 10:54 am
Qua Jul 28, 2021 6:12 pm
Qua Jul 28, 2021 5:15 pm
Qua Jul 28, 2021 4:39 pm
Qua Jul 28, 2021 2:28 pm
Qua Jul 28, 2021 9:36 am
Ter Jul 27, 2021 1:20 am
Dom Jul 25, 2021 11:12 pm
Dom Jul 25, 2021 10:51 pm
Dom Jul 25, 2021 6:16 pm
Dom Jul 25, 2021 4:03 pm
Dom Jul 25, 2021 12:39 pm
Sab Jul 24, 2021 11:02 pm
Sab Jul 24, 2021 9:35 pm
Sab Jul 24, 2021 12:11 pm
Sab Jul 24, 2021 3:55 am
Sex Jul 23, 2021 4:02 pm
Sex Jul 23, 2021 2:26 pm
Sex Jul 23, 2021 11:50 am
Qui Jul 22, 2021 8:08 pm
Qui Jul 22, 2021 3:38 pm
Qui Jul 22, 2021 3:00 pm
Qui Jul 22, 2021 10:47 am
Qua Jul 21, 2021 6:09 pm
Qua Jul 21, 2021 6:07 pm
Qua Jul 21, 2021 3:41 pm
Qua Jul 21, 2021 5:00 am
Qua Jul 21, 2021 12:30 am
Ter Jul 20, 2021 7:17 pm
Ter Jul 20, 2021 1:21 pm
Ter Jul 20, 2021 10:24 am
Ter Jul 20, 2021 8:27 am
Ter Jul 20, 2021 6:23 am
Ter Jul 20, 2021 6:09 am
Seg Jul 19, 2021 9:06 pm
Seg Jul 19, 2021 9:09 am
Seg Jul 19, 2021 12:22 am
Dom Jul 18, 2021 11:20 pm
Dom Jul 18, 2021 9:10 pm
Dom Jul 18, 2021 2:55 pm
Dom Jul 18, 2021 11:17 am
Sab Jul 17, 2021 11:10 pm
Sab Jul 17, 2021 11:00 pm
Sab Jul 17, 2021 10:49 pm
Sab Jul 17, 2021 10:38 pm
Sab Jul 17, 2021 7:53 pm
Sab Jul 17, 2021 11:20 am
Sab Jul 17, 2021 11:12 am
Sab Jul 17, 2021 6:52 am
Sab Jul 17, 2021 6:39 am
Sab Jul 17, 2021 6:32 am
Sab Jul 17, 2021 6:28 am
Sab Jul 17, 2021 1:16 am
Sex Jul 16, 2021 7:29 pm
Sex Jul 16, 2021 5:40 pm
Sex Jul 16, 2021 5:02 pm
Sex Jul 16, 2021 12:49 pm
Sex Jul 16, 2021 9:25 am
Sex Jul 16, 2021 12:20 am
Qui Jul 15, 2021 6:16 pm
Qui Jul 15, 2021 5:06 pm
Qua Jul 14, 2021 5:59 pm
Qua Jul 14, 2021 5:35 pm
Qua Jul 14, 2021 11:02 am
Seg Jul 12, 2021 9:27 pm
Seg Jul 12, 2021 12:13 pm
Dom Jul 11, 2021 11:08 pm
Dom Jul 11, 2021 10:30 pm
Dom Jul 11, 2021 7:13 pm
Sab Jul 10, 2021 7:05 pm
Sab Jul 10, 2021 10:05 am
Sex Jul 09, 2021 2:51 pm
Qui Jul 08, 2021 7:36 pm
Qui Jul 08, 2021 7:13 pm
Qui Jul 08, 2021 1:53 pm
Qui Jul 08, 2021 1:14 pm
Qui Jul 08, 2021 12:59 pm
Qua Jul 07, 2021 11:48 pm
Qua Jul 07, 2021 10:13 pm
Qua Jul 07, 2021 2:14 pm
Ter Jul 06, 2021 7:51 pm
Ter Jul 06, 2021 1:30 pm
Ter Jul 06, 2021 8:38 am
Seg Jul 05, 2021 1:17 am
Sab Jul 03, 2021 12:36 pm
Sab Jul 03, 2021 2:29 am
Sex Jul 02, 2021 11:12 pm
Sex Jul 02, 2021 1:56 pm
stratengine
felipekieling
RGT
Rangel Oblivion
diegopds
RGT2020
Pokedlg
MayLeone
Crash Psycho
Fagner
Fagner
ViniciusTKH
Regis2030
Fagner
dezorolon
dutrabr100
Fagner
danilojpbr212
Pokedlg
kaiquecachoeira1
VitinRuas
Lester202123
bruno92
Fagner
aikow
Pokedlg
FelipeSouza11
ViniciusTKH
Charlesoff
Patrick
WLCS22
jeancvo3
MarcosSchultz
amanda.ilg
LucasBR
jeancvo3
SauloeArthur
PauloFR
JoelMJunior
cleitinhoRasta
jhonih00010
PauloFR
PauloFR
PauloFR
PauloFR
crazylagg
Valério
jhonih00010
jhonih00010
PauloFR
Crash Psycho
edu63
PauloFR
PauloFR
PauloFR
PauloFR
Fagner
PauloFR
Franttyck
PauloFR
PauloFR
PauloFR
PauloFR
WLCS22
Morpheus
jhonih00010
WLCS22
Fagner
NKKF
jhonih00010
MatheusTD
MarcosSchultz
Magnatah
Magnatah
Fagner
Charlesoff
MayLeone
MayLeone
MayLeone
RodrigoPrivilegium
Fagner
ProBrStalker
ronigleydson
a32515
RobsonRAS
VittorTGame23
brunera
patriicia
ffabim
VittorTGame23
jeancvo3
Fagner
Fagner
Pokedlg
Fagner
Shiimo
Valmi
Crash Psycho
Fagner

ERRO NO SCRIPT swimming!!!

Ir para baixo

DÚVIDA ERRO NO SCRIPT swimming!!!

Mensagem por joaolibolone998 Qua Mar 25, 2020 7:22 am

Script:

Código:
using UnityEngine;
using System.Collections;
using Invector.CharacterController;
using UnityEngine.Events;

namespace Invector.CharacterController.Actions
{
    /// <summary>
    /// vSwimming Add-on
    /// On this Add-on we're locking the tpInput along with the tpMotor, tpAnimator & tpController methods to handle the Swimming behaviour.
    /// We can still access those scripts and methods, and call just what we need to use for example the FreeMovement, CameraInput, StaminaRecovery and UpdateHUD methods    
    /// This way the add-on become modular and plug&play easy to modify without changing the core of the controller. 
    /// </summary>

    [vClassHeader("Swimming Action")]
public class vSwimming : MonoBehaviour {

}

        #region Swimming Variables      

        [Header("Animations Clips & Tags")]
        [Tooltip("Name of the tag assign into the Water object")]
public class UpdateGameObject{FindWithTag Tag = "Water" 


[Tooltip("Name of the animation clip that will play when you enter the Water")];
public class swimmingClip  {"Swimming";}


        [Tooltip("Name of the animation clip that will play when you enter the Water")]
        public  diveClip = "Dive";
        [Tooltip("Name of the tag assign into the Water object")]
        public  exitWaterTag = "Action";
        [Tooltip("Name of the animation clip that will play when you exit the Water")]
public  exitWaterClip = "QuickClimb";{

}

        [Header("Speed & Extra Options")]
        [Tooltip("Uncheck if you don't want to go under water")]
        public bool swimUpAndDown = true;
        [Tooltip("Speed to swim forward")]
        public float swimForwardSpeed = 3f;
        [Tooltip("Speed to rotate the character")]
        public float swimRotationSpeed = 3f;
        [Tooltip("Speed to swim up")]
        public float swimUpSpeed = 1.5f;
        [Tooltip("Increase the radius of the capsule collider to avoid enter walls")]
        public float colliderRadius = .5f;
        [Tooltip("Height offset to match the character Y position")]
        public float heightOffset = .3f;
        [Tooltip("Create a limit for the camera before affects the rotation Y of the character")]
        public float cameraRotationLimit = .65f;

        [Header("Stamina Consuption")]
        [Tooltip("Leave with 0 if you don't want to use stamina consuption")]
        public float stamina = 15f;

        [Header("Particle Effects")]
        public GameObject impactEffect;
        [Tooltip("Check the Rigibody.Y of the character to trigger the ImpactEffect Particle")]
        public float velocityToImpact = -4f;
        public GameObject waterRingEffect;
        [Tooltip("Frequency to instantiate the WaterRing effect while standing still")]
        public float waterRingFrequencyIdle = .8f;
        [Tooltip("Frequency to instantiate the WaterRing effect while swimming")]
        public float waterRingFrequencySwim = .15f;
        [Tooltip("Instantiate a prefab when exit the water")]
        public GameObject waterDrops;
        [Tooltip("Y Offset based at the capsule collider")]
        public float waterDropsYOffset = 1.6f;

        [Tooltip("Debug Mode will show the current behaviour at the console window")]
        public bool debugMode;

        [Header("Inputs")]
        [Tooltip("Input to make the character go up")]
        public GenericInput swimUpInput = new GenericInput("Space", "X", "X");
        [Tooltip("Input to make the character go down")]
        public GenericInput swimDownInput = new GenericInput("LeftShift", "Y", "Y");
        [Tooltip("Input to exit the water by triggering a climb animation")]
        public GenericInput exitWaterInput = new GenericInput("E", "A", "A");

        private vThirdPersonInput tpInput;
        private vGetTransform exitWaterTrigger;
        private vGetTransform _tempExitWaterTrigger;
        private float originalColliderRadius;
        private float speed;
        private float timer;
        private float waterHeightLevel;
        private float originalRotationSpeed;
        private float waterRingSpawnFrequency;
        private bool inTheWater;
        private bool isExitingWater;

        // bools to trigger a method once on a update
        private bool triggerSwimState;
        private bool triggerExitSwim;
        private bool triggerUnderWater;
        private bool triggerAboveWater;

        #endregion

        public UnityEvent OnAboveWater;
        public UnityEvent OnUnderWater;

        private void Start()
        {
            tpInput = GetComponent<vThirdPersonInput>();
        }

        protected virtual void Update()
        {
            if (!inTheWater) return;

            ExitWaterAnimation();

            if (isExitingWater) return;

            UnderWaterBehaviour();
            SwimmingBehaviour();
        }

        private void SwimmingBehaviour()
        {
            // trigger swim behaviour only if the water level matches the player height + offset
            if (tpInput.cc._capsuleCollider.bounds.center.y + heightOffset < waterHeightLevel)
            {
                if (tpInput.cc.currentHealth > 0)
                {
                    if (!triggerSwimState) EnterSwimState();        // call once the swim behaviour
                    SwimForwardInput();                             // input to swin forward
                    SwimUpOrDownInput();                            // input to swin up or down
                    ExitWaterInput();                               // input to exit the water if inside the exitTrigger
                    tpInput.cc.FreeMovement();                      // update the free movement so we can rotate the character
                    tpInput.cc.StaminaRecovery();
                }
                else
                {
                    ExitSwimState();
                }
                tpInput.CameraInput();                          // update the camera input
                tpInput.UpdateHUD();                            // update hud graphics                
            }
            else
            {
                ExitSwimState();
            }
        }

        private void UnderWaterBehaviour()
        {
            if (isUnderWater)
            {
                StaminaConsumption();

                if (!triggerUnderWater)
                {
                    tpInput.cc._capsuleCollider.radius = colliderRadius;
                    triggerUnderWater = true;
                    triggerAboveWater = false;
                    OnUnderWater.Invoke();
                    tpInput.cc.animator.CrossFadeInFixedTime(diveClip, 0.25f);
                    tpInput.cc.animator.SetInteger("ActionState", 2);
                }
            }
            else
            {
                WaterRingEffect();
                if (!triggerAboveWater && triggerSwimState)
                {
                    triggerUnderWater = false;
                    triggerAboveWater = true;
                    OnAboveWater.Invoke();
                    tpInput.cc.animator.CrossFadeInFixedTime(swimmingClip, 0.25f);
                    tpInput.cc.animator.SetInteger("ActionState", 1);
                }
            }
        }

        private void StaminaConsumption()
        {
            if (tpInput.cc.currentStamina <= 0)
            {
                tpInput.cc.currentHealth -= 1f;
            }
            else
            {
                tpInput.cc.ReduceStamina(stamina, true);        // call the ReduceStamina method from the player
                tpInput.cc.currentStaminaRecoveryDelay = 0.25f;    // delay to start recovery stamina           
            }
        }

        public override void OnActionEnter(Collider other)
        {
            if (other.gameObject.CompareTag(waterTag))
            {
                if (debugMode) Debug.Log("Player enter the Water");
                inTheWater = true;
                waterHeightLevel = other.transform.position.y;
                originalColliderRadius = tpInput.cc._capsuleCollider.radius;
                originalRotationSpeed = tpInput.cc.freeSpeed.rotationSpeed;

                if (tpInput.cc.verticalVelocity <= velocityToImpact)
                {
                    var newPos = new Vector3(transform.position.x, other.transform.position.y, transform.position.z);
                    Instantiate(impactEffect, newPos, tpInput.transform.rotation);
                }
            }

            if (other.gameObject.CompareTag(exitWaterTag))
            {
                exitWaterTrigger = other.GetComponent<vGetTransform>();
                _tempExitWaterTrigger = exitWaterTrigger;
            }
        }

        public override void OnActionExit(Collider other)
        {
            if (other.gameObject.CompareTag(waterTag))
            {
                if (debugMode) Debug.Log("Player left the Water");
                if (isExitingWater) return;
                inTheWater = false;
                ExitSwimState();
                if (waterDrops)
                {
                    var newPos = new Vector3(transform.position.x, transform.position.y + waterDropsYOffset, transform.position.z);
                    GameObject myWaterDrops = Instantiate(waterDrops, newPos, tpInput.transform.rotation) as GameObject;
                    myWaterDrops.transform.parent = transform;
                }
            }

            if (other.gameObject.CompareTag(exitWaterTag) && !isExitingWater)
            {
                exitWaterTrigger = null;
            }
        }

        private void EnterSwimState()
        {
            if (debugMode) Debug.Log("Player is Swimming");

            triggerSwimState = true;
            tpInput.enabled = false;
            ResetPlayerValues();
            tpInput.cc.isStrafing = false;
            tpInput.cc.customAction = true;
            tpInput.cc.animator.CrossFadeInFixedTime(swimmingClip, 0.25f);
            tpInput.cc.freeSpeed.rotationSpeed = swimRotationSpeed;
            tpInput.cc._rigidbody.useGravity = false;
            tpInput.cc._rigidbody.drag = 10f;
        }

        private void ExitSwimState()
        {
            if (!triggerSwimState) return;
            if (debugMode) Debug.Log("Player Stop Swimming");

            triggerSwimState = false;
            tpInput.enabled = true;
            tpInput.cc.customAction = false;
            tpInput.cc.animator.SetInteger("ActionState", 0);
            tpInput.cc.colliderRadius = originalColliderRadius;
            tpInput.cc.freeSpeed.rotationSpeed = originalRotationSpeed;
            tpInput.cc._rigidbody.useGravity = true;
            tpInput.cc._rigidbody.drag = 0f;
        }

        private void ExitWaterAnimation()
        {
            tpInput.cc.LayerControl();                              // update the verification of the layers 
            tpInput.cc.ActionsControl();                            // update the verifications of actions 

            if (_tempExitWaterTrigger == null) return;

            // verify if the exit water animation is playing
            isExitingWater = tpInput.cc.baseLayerInfo.IsName(exitWaterClip);
            if (isExitingWater)
            {
                tpInput.CameraInput();                              // update the camera input
                tpInput.cc.DisableGravityAndCollision();            // disable gravity and collision so the character can make the animation using root motion                
                tpInput.cc.isGrounded = true;                       // ground the character so that we can run the root motion without any issues
                tpInput.cc.animator.SetBool("IsGrounded", true);    // also ground the character on the animator so that he won't float after finishes the climb animation

                if (_tempExitWaterTrigger.matchTarget != null)
                {
                    if (debugMode) Debug.Log("Match Target...");
                    // use match target to match the Y and Z target 
                    tpInput.cc.MatchTarget(_tempExitWaterTrigger.matchTarget.transform.position, _tempExitWaterTrigger.matchTarget.transform.rotation, _tempExitWaterTrigger.avatarTarget,
                        new MatchTargetWeightMask(_tempExitWaterTrigger.matchTargetMask, 0), _tempExitWaterTrigger.startMatchTarget, _tempExitWaterTrigger.endMatchTarget);
                }

                if (_tempExitWaterTrigger.useTriggerRotation)
                {
                    if (debugMode) Debug.Log("Rotate to Target...");
                    // smoothly rotate the character to the target
                    transform.rotation = Quaternion.Lerp(transform.rotation, _tempExitWaterTrigger.transform.rotation, tpInput.cc.animator.GetCurrentAnimatorStateInfo(0).normalizedTime);
                }

                // after playing the animation we reset some values
                if (tpInput.cc.animator.GetCurrentAnimatorStateInfo(0).normalizedTime % 1 >= .8f)
                {
                    tpInput.cc.EnableGravityAndCollision(0f);       // enable again the gravity and collision 
                    exitWaterTrigger = null;                        // reset the exitWaterTrigger to null
                    isExitingWater = false;                         // reset the bool isExitingWater so we can exit again
                    inTheWater = false;                             // reset the bool saying that we're not on water anymore
                    ExitSwimState();                                // run the method exit swim state
                }
            }
        }

        private void SwimForwardInput()
        {
            // get input access from player
            tpInput.cc.input.x = tpInput.horizontalInput.GetAxis();
            tpInput.cc.input.y = tpInput.verticallInput.GetAxis();
            speed = Mathf.Abs(tpInput.cc.input.x) + Mathf.Abs(tpInput.cc.input.y);
            speed = Mathf.Clamp(speed, 0, 1f);
            // update input values to animator 
            tpInput.cc.animator.SetFloat("InputVertical", speed, 0.5f, Time.deltaTime);
            // extra rigibody forward force 
            var velY = transform.forward * swimForwardSpeed * speed;
            velY.y = tpInput.cc._rigidbody.velocity.y;
            tpInput.cc._rigidbody.velocity = velY;
            tpInput.cc._rigidbody.AddForce(transform.forward * (swimForwardSpeed * speed) * Time.deltaTime, ForceMode.VelocityChange);
        }

        private void SwimUpOrDownInput()
        {
            if (tpInput.cc.customAction) return;
            var upConditions = (((tpInput.cc._capsuleCollider.bounds.center.y + heightOffset) - waterHeightLevel) < -.2f);

            if (!swimUpAndDown)
            {
                var newPos = new Vector3(transform.position.x, waterHeightLevel, transform.position.z);
                if (upConditions) tpInput.cc.transform.position = Vector3.Lerp(transform.position, newPos, 0.5f * Time.deltaTime);
                return;
            }

            // extra rigibody up velocity                 
            if (swimUpInput.GetButton() && upConditions)
            {
                var vel = tpInput.cc._rigidbody.velocity;
                vel.y = swimUpSpeed;
                tpInput.cc._rigidbody.velocity = vel;
                tpInput.cc.animator.PlayInFixedTime("DiveUp", 0, tpInput.cc.input.magnitude > 0.1f ? 0.5f : 0.1f);
            }
            else if (swimDownInput.GetButtonDown() && !upConditions)
            {
                var vel = tpInput.cc._rigidbody.velocity;
                vel.y = -swimUpSpeed;
                tpInput.cc._rigidbody.velocity = vel;
                tpInput.cc.animator.CrossFadeInFixedTime("DiveDown", tpInput.cc.input.magnitude > 0.1f ? 0.5f : 0.1f);
            }
            else
            {
                // swim up or down based at the camera forward
                float inputGravityY = (Camera.main.transform.forward.y) * speed;
                var vel = tpInput.cc._rigidbody.velocity;
                vel.y = inputGravityY;
                if (vel.y > 0 && !upConditions)
                    vel.y = 0f;
                if (inputGravityY > cameraRotationLimit || inputGravityY < -cameraRotationLimit)
                {
                    tpInput.cc._rigidbody.velocity = vel;
                }
            }
        }

        private void ExitWaterInput()
        {
            if (exitWaterTrigger == null) return;

            if (exitWaterInput.GetButtonDown())
            {
                tpInput.cc._rigidbody.drag = 0f;
                OnAboveWater.Invoke();
                tpInput.cc.animator.CrossFadeInFixedTime(exitWaterClip, 0.1f);
            }
        }

        private void WaterRingEffect()
        {
            // switch between waterRingFrequency for idle and swimming
            if (tpInput.cc.input != Vector2.zero) waterRingSpawnFrequency = waterRingFrequencySwim;
            else waterRingSpawnFrequency = waterRingFrequencyIdle;

            // counter to instantiate the waterRingEffects using the current frequency
            timer += Time.deltaTime;
            if (timer >= waterRingSpawnFrequency)
            {
                var newPos = new Vector3(transform.position.x, waterHeightLevel, transform.position.z);
                Instantiate(waterRingEffect, newPos, tpInput.transform.rotation);
                timer = 0f;
            }
        }

        private void ResetPlayerValues()
        {
            tpInput.cc.isJumping = false;
            tpInput.cc.isSprinting = false;
            tpInput.cc.animator.SetFloat("InputHorizontal", 0);
            tpInput.cc.animator.SetFloat("InputVertical", 0);
            tpInput.cc.animator.SetInteger("ActionState", 1);
            tpInput.cc.isGrounded = true;                       // ground the character so that we can run the root motion without any issues
            tpInput.cc.animator.SetBool("IsGrounded", true);    // also ground the character on the animator so that he won't float after finishes the climb animation
            tpInput.cc.verticalVelocity = 0f;
        }

        bool isUnderWater
        {
            get
            {
                if (tpInput.cc._capsuleCollider.bounds.max.y >= waterHeightLevel + 0.25f)
                    return false;
                else
                    return true;
            }
        }
    }
}



joaolibolone998
Iniciante
Iniciante

PONTOS : 588
REPUTAÇÃO : 0
Respeito as regras : ERRO NO SCRIPT swimming!!! WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: ERRO NO SCRIPT swimming!!!

Mensagem por joaolibolone998 Qua Mar 25, 2020 7:58 am

OnActionExit como se usa na unity 5.6 ??

joaolibolone998
Iniciante
Iniciante

PONTOS : 588
REPUTAÇÃO : 0
Respeito as regras : ERRO NO SCRIPT swimming!!! WvDYdlf

Ir para o topo Ir para baixo

Ir para o topo


 
Permissão neste fórum:
Você não pode responder aos tópicos