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:
movimentar a camera com o mouse estilo jogo RTS
Script de movimentação
[Formação de Equipe] Quando foi ontem?
Reduzir uso de memória RAM
PRECISO DE AJUDA URGENTE !!!
preciso da ajuda de alguém urgente
Como dar um fade out/escurecer tela/mudar cena após um diálogo terminar?
PRECISO DE UMA PESSOA QUE SAIBA MECHER COM ONLINE NO UNITY
[RESOLVIDO] Problemas com blender
[Formação de equipe] Formação de equipe para o ramo de criação de jogos.
[RESOLVIDO] Como selecionar diferentes objetos com o clique do mouse usando raycast
Uma alternativa para o Visual Studio Community
[RESOLVIDO] Como fazer a funcao do Slider iniciar com o valor setado?
[RESOLVIDO] Como fazer sequência de if e personagem respawnar depois de alguns segundos.
[TUTORIAL] Deixando o unity 2019 preto na versão de graça
Por favor, coloquem a opção de excluir mensagem
Animações Bugando ao trocar Ajuda aqui na moral
Mexer a camera com touch
Ajuda com IAP Purchase Unity PlayStore.
Nano - Jogo de Estratégia para Android
Ajuda com IA
Como passo variáveis entre Cenas?
Alguem sabe se existe uma função parecida a OnMouseEnter para Touch
Recrutando (FugasBR Online Para Mobile e PC)
Código de Joystick obsoleto que o Unity pede para atualizar
Erro na compilação (Visual Studio)
Teaser do Project Lazarus parte 2
Cubo sendo esvaziado 3D
Esta versão não está em conformidade com o requisito de 64 bits do Google Play
Sobre reflexão de luzes no unity e flares
Como salvar tudo de uma que esta em uma scene?
Rotação para inimigo
Como posso resolver o erro "NullRefenceException" da unity
[Duvida] Sistema de movimentação de personagem em 4 direções.
Melhore a IA dos seus jogos - IA do Creeper
Jogo de luta - multiplayer local
DESAFIO MULTPLAYER
[TUTORIAL] Passar Valores entre cenas
Como sobreponho um sprite num objeto em que ambos colidem?
Click na tela Mobile/PC
Bug Animation <não fica em loop> Unity 2019.4
Meu Proprio remake de siren head (em 24hrs)
Troca de fase
[TUTORIAL] AI Enemy ( Jogos de terror )
Um unico script de status serve pra todos em geral?
quero que a camera gire como o personagem mais nao consigo
The scripts needs to derive from monobehaviour
[TUTORIAL] Pegar e Dropar item no chao.[2.0]
[RESOLVIDO] COMO EXECUTAR FUNÇÃO A CADA PERÍODO DE TEMPO
Textura realistas
Sistema de Pontuação (Dúvida)
Como deixar a barra de vida fixa??
[TUTORIAL] Usando Pos Processamento
Humanoid
FPS KIT 1.0 - EM DESENVOLVIMENTO
Alguém pode me ajuda a coloca animação quando anda?
Mudar cena ao ativar um objeto
Escape the Danonão (Jogo de terror do Danonão Grosso no estilo Slender)
UI duplicando numeração usando SceneManager.LoadScene
AssetBundle não renderiza
Lets Play RPG - No editor funciona perfeito, porem dps de compilado nao funciona.
PAUSE PARCIAL
duvida sobre C# e unity
Como Add Fog em lugar no mundo específico
Como criar sistema de Habilidades (Skills) para o personagem 2D / e sistema de batalha 2D
Como identificar o vencedor em uma corrida multiplayer?
Sistema de desaceleração usando MovePosition
Alguém poderia me ajuda?
Como fazer um ciclo dia e noite com transição de skyboxes?
Como limito um movimento de modo a que não se movimente na diagonal?
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
Animaçao de sacar arma
Movimentaçao de personagem 3d
Rotacionar objeto de acordo com direção que ele está se movendo
Dúvida com o IEnumertor
[DUVIDA]como coloco um audio enquanto uma esfera roda
Fear - Modern House The Game [WINDOWS - ANDROID]
Sistema de pulo 2d
COMO MUDAR GETKEY WASD PARA GETBUTTON HORIZONTAL E VERTICAL ???
TOCAR SONS REPETIDAMENTE
Duvida sobre o forum
Explicacao de GD para CSharp[GODOT]
Tutorial Game de Plataforma 2D[GODOT]
Tutorial Inteligencia Artificial 2D[GODOT]
Sistema de vitória em um jogo multiplayer (photon 2)
Movimentar inimigo em posições aleatorias
Parallax travando, segue o código que utilizo
Jogo Maria Bella
Joystick Mobile do Marcos Schult
[RESOLVIDO] Pegar um frame no animation via C# Unity 3D
[AJUDA] NavMesh bugado
Jogo de Galo e de Galinha também
Movimento com Botões Unity 3D
[Dúvida] posições de objetos e âncora
Meu player não se move
um erro inicial no unity
UNITY CRASHANDO
[TUTORIAL] Criar árvores fácilmente com o criador de árvores da Unity
Tela cinza ao usar SPLASH IMAGE - UNITY
Hoje à(s) 6:08 pm
Hoje à(s) 8:08 am
Ontem à(s) 11:13 pm
Ontem à(s) 5:42 pm
Ontem à(s) 3:56 pm
Ontem à(s) 2:55 pm
Ontem à(s) 2:43 pm
Ontem à(s) 2:17 pm
Ontem à(s) 1:05 pm
Ontem à(s) 12:35 pm
Ontem à(s) 9:49 am
Ontem à(s) 8:07 am
Qui Jul 09, 2020 7:42 pm
Qui Jul 09, 2020 6:09 pm
Qui Jul 09, 2020 4:26 pm
Qui Jul 09, 2020 1:18 pm
Qui Jul 09, 2020 12:09 pm
Qui Jul 09, 2020 10:26 am
Qua Jul 08, 2020 8:58 pm
Qua Jul 08, 2020 4:50 pm
Qua Jul 08, 2020 4:40 pm
Qua Jul 08, 2020 4:34 pm
Qua Jul 08, 2020 3:15 pm
Qua Jul 08, 2020 2:51 pm
Qua Jul 08, 2020 12:53 pm
Ter Jul 07, 2020 10:18 pm
Ter Jul 07, 2020 7:56 pm
Seg Jul 06, 2020 6:56 pm
Seg Jul 06, 2020 6:52 pm
Dom Jul 05, 2020 9:13 pm
Dom Jul 05, 2020 7:17 pm
Dom Jul 05, 2020 7:15 pm
Dom Jul 05, 2020 2:56 pm
Dom Jul 05, 2020 2:05 pm
Dom Jul 05, 2020 1:43 pm
Dom Jul 05, 2020 11:50 am
Sab Jul 04, 2020 5:02 pm
Sab Jul 04, 2020 3:20 pm
Sab Jul 04, 2020 3:08 pm
Sab Jul 04, 2020 11:02 am
Sab Jul 04, 2020 2:31 am
Sex Jul 03, 2020 1:14 pm
Sex Jul 03, 2020 12:34 pm
Qui Jul 02, 2020 5:28 pm
Qui Jul 02, 2020 5:06 pm
Qui Jul 02, 2020 3:06 pm
Qui Jul 02, 2020 2:57 pm
Qui Jul 02, 2020 2:07 pm
Qui Jul 02, 2020 1:59 pm
Qui Jul 02, 2020 1:25 pm
Qui Jul 02, 2020 11:32 am
Qui Jul 02, 2020 12:00 am
Qua Jul 01, 2020 6:31 pm
Qua Jul 01, 2020 6:04 pm
Qua Jul 01, 2020 6:00 pm
Qua Jul 01, 2020 3:19 pm
Qua Jul 01, 2020 1:18 pm
Qua Jul 01, 2020 8:59 am
Qua Jul 01, 2020 8:54 am
Qua Jul 01, 2020 8:51 am
Qua Jul 01, 2020 8:22 am
Ter Jun 30, 2020 2:22 pm
Ter Jun 30, 2020 11:25 am
Seg Jun 29, 2020 7:51 pm
Seg Jun 29, 2020 4:45 pm
Seg Jun 29, 2020 12:49 pm
Seg Jun 29, 2020 11:41 am
Seg Jun 29, 2020 9:53 am
Dom Jun 28, 2020 11:59 pm
Dom Jun 28, 2020 10:02 pm
Dom Jun 28, 2020 10:01 pm
Dom Jun 28, 2020 5:55 pm
Dom Jun 28, 2020 10:40 am
Dom Jun 28, 2020 9:16 am
Dom Jun 28, 2020 7:29 am
Sab Jun 27, 2020 2:53 pm
Sab Jun 27, 2020 8:08 am
Sex Jun 26, 2020 12:18 pm
Qui Jun 25, 2020 10:40 pm
Qui Jun 25, 2020 10:20 pm
Qui Jun 25, 2020 5:18 pm
Qui Jun 25, 2020 5:13 pm
Qui Jun 25, 2020 5:10 pm
Qui Jun 25, 2020 5:08 pm
Qui Jun 25, 2020 4:45 pm
Qui Jun 25, 2020 12:35 pm
Qui Jun 25, 2020 10:45 am
Qui Jun 25, 2020 7:21 am
Qui Jun 25, 2020 12:30 am
Qua Jun 24, 2020 8:02 pm
Qua Jun 24, 2020 6:58 pm
Qua Jun 24, 2020 6:37 pm
Qua Jun 24, 2020 3:23 pm
Qua Jun 24, 2020 11:41 am
Ter Jun 23, 2020 11:00 pm
Ter Jun 23, 2020 9:44 pm
Ter Jun 23, 2020 8:45 pm
Ter Jun 23, 2020 8:07 pm
Ter Jun 23, 2020 3:05 pm
JulioWinchester
LúcioHenrique098
Nitram766
MRX
artplayer
Magnatah
Magnatah
marlon33
MRX
Weslley
JulioWinchester
artplayer
TioUV
flaviopunk182
NKKF
CShar
Fagner
Wahder
poyser
Koai
Koai
Koai
KurotamaXIII
fecirineu
flaviopunk182
orph
Patrick
orph
iToddy
dknoob537
JoelMJunior
BrunoMga07
M.Choice
FerX95
ScorpionG4mer
jsiilva2k
BrunoMga07
Tiagotes
Tiagotes
Micco
fabricadegame
thales.ulisses
Micco
maxwellvale
Magnatah
Andrew lameira batista
kauannunes
Micco
CristhianSelbach
vini024
Callyde Jr
Hohenheim
hendrick22
adryansantoss
pekazao
Th2y
Micco
AmazingDeliciano
AmazingDeliciano
numb123
gtcmcsgo
FabioYuji
artplayer
Gabriel M
04vini
EliezerGomes
gabrimo
streamer
mama2401
Tiagotes
Albert Vinicius
iToddy
Micco
Ezequiel286
JoelMJunior
diegopds
thales.ulisses
AndreDeveloper
teos626
eduardoklausss
Chilinger
Chilinger
Chilinger
Chilinger
MarcosSchultz
Callyde Jr
bunijaclp
thales.ulisses
teos626
KurotamaXIII
AmazingDeliciano
poyser
KurotamaXIII
poyser
maxwellvale
Micco
vini024
MarcosSchultz
weuler

ERRO NO SCRIPT swimming!!!

Ir em baixo

DÚVIDA ERRO NO SCRIPT swimming!!!

Mensagem por joaolibolone998 em 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 : 201
REPUTAÇÃO : 0
Respeito as regras : ERRO NO SCRIPT swimming!!! WvDYdlf

Voltar ao Topo Ir em baixo

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

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

OnActionExit como se usa na unity 5.6 ??

joaolibolone998
Iniciante
Iniciante

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

Voltar ao Topo Ir em baixo

Voltar ao Topo


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