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 Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
ERRO sharedassets0
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
[TUTORIAL] Menu pause ( AVANÇADO )
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
FÍSICA+ESTABILIDADE DO TUTORIAL DO MARCOS
OFICINA/PERSONALIZAÇÃO DO PLAYER
[DÚVIDA] SISTEMA DE HEADSHOT
reconhecimento de fala simples
oque eu tenho que colocar nesse script?
Ad Mob
Botão Unity
Linkar Meshes das Rodas!
fazer o player perde vida e sua barra de vida descer conforme o dano
(pedido) script para ativar física
Baixos Brasil - Jogo de Carro Brasileiro!
Aguá do meu jogo esta rosa depois de ter passado o projeto para outro computador
[TUTORIAL] Como fazer um TELEPORTE
Script Shader
Sistema de frio??
Como colocar o um CORPO funcional no FPS
Som ambiente,Interação de objetos unity 3D
Telemportar objeto?
[RESOLVIDO] Compilar para android?
Quais melhores estratégias para divulgação de um jogo indie?
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Flying Bird - PlayStore
Direção da câmera ser para onde o player vai ao apertar a tecla de ir para frente!!
Props Animations Asset
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
[TUTORIAL] Trocar a textura de um objeto pelas texturas de uma lista ( array ) seguindo a ordem da mesma.
MouseOver alterar de cores solidas para texturas alterar script
Como tiro a tela de seleção de resolução que aparece quando abro o jogo?
VENHAM CONTEMPLAR CUBOID! E entrem para a equipe!
chamare indice de uma List<> em outro script
Unity Assets Duvida
pessoal prefab para colider ou um raycast
[RESOLVIDO] Help. texto através dos objetos unity
[TUTORIAL] C# .NET | Instalar IDE para compilar c# para outras plataformas
Mudar Cor do Veiculo!
[RESOLVIDO]tirar vida do inimigo com click do mause
[TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Por que os modelos que importo para o unity desaparecem?
Falha de Segurança na Unity
[TUTORIAL] Gerar números aleatórios SEM REPETIR (método com lista)
Cuboid 0.8, divulguem por favor
Tutorial: jogo estilo minecraft
Meu Jogo em desenvolvimento
Verificar texto De um Input Field
Como Separar Variaveis ?
Duvida sobre script
Search the Rats update 1.2
Erro unity
Chamando animação por script
Como fazer objeto voltar a posição inicial? só que ele estará "em movimento"
Button Facebook Mobile!
Lancei um jogo na Play Store - Tic Tac ToeSP.
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
10 ASSETS GRATUITOS PARA UNITY 5
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
Detectar se uma variável mudou e a quanto tempo ela mudou
Como posso criar um inputfield alfabtical alguem sabe?
ativar animação ao apertar botão (android)
Ai Enemy Inimigo Parando do nada
Duvida Extranhicima
gameobject transparente
[TUTORIAL] Tutorial Unity 3D Movimentação de Personagem com Botões UI
Menu de Construções estilo jogo "Banished"
Instanciar
-[COMO IMPLEMENTO UMA ARRAY NESTE SCRIPT?]-
[RESOLVIDO] Inteligência Artificial (básica) - interação Rigidbody2D Collision
Sistema de Futebol(Chutar bola e carrega-la até o gol)
Jogo De Corrida Infinita (2D)[Mobile]
[TUTORIAL] Inimigo seguir e atacar Player ao encostar
Jogo crashando depois da build
[TUTORIAL] Adicionar força a um Rigidbody na direção onde o mouse está
Duvida com Script VIDA
Iniciar em Unity
Escolhendo cores com scroll "mouse"
[RESOLVIDO] Erro com Audio Source ???
Partindo Para Faculdade!
[DÚVIDA] COMO FAZER UM "TEXT" APARECER SÓ UMA VEZ QUANDO O GAME INICIAR?
Simple Touch Camera Script
Duvida sobre iluminação
Duplo personagem
Erro
Dúvida sobre Estado inicial
Jogo de Pesca (Física da Linha)
Water
[RESOLVIDO] ERRO SUN SHAFTS (script nao aparece)
Animações do Player. Como faço????
MAGIA SEGUIR ALVO COM TAG APOS SER INSTANCIADA
Formação de equipe para talvez um jogo Unturned+Battlegrounds - Unity c#
[DÚVIDA] FAZER JOGO ESTILO O ARROW.IO
[RESOLVIDO] Opções no menu?
[RESOLVIDO] Alguém poderia me ajudar a diminuir esse script?
Como fazer para o personagem ao sairdas delimitações da tela apareca no lado oposto?
Ajuda com script pra box collider
Sistema de combate estilo Runescape
[Gerenciador de fase aleatório]
Hoje à(s) 12:51 am
Ontem à(s) 10:20 pm
Ontem à(s) 10:08 pm
Ontem à(s) 9:58 pm
Ontem à(s) 9:56 pm
Ontem à(s) 9:55 pm
Ontem à(s) 9:43 pm
Ontem à(s) 9:14 pm
Ontem à(s) 9:10 pm
Ontem à(s) 9:08 pm
Ontem à(s) 8:12 pm
Ontem à(s) 7:57 pm
Ontem à(s) 7:22 pm
Ontem à(s) 7:09 pm
Ontem à(s) 6:58 pm
Ontem à(s) 6:03 pm
Ontem à(s) 1:37 pm
Ontem à(s) 1:37 pm
Ontem à(s) 1:24 pm
Ontem à(s) 1:19 pm
Ontem à(s) 1:13 pm
Ontem à(s) 12:18 pm
Ontem à(s) 11:01 am
Ontem à(s) 9:59 am
Ontem à(s) 9:50 am
Ontem à(s) 9:11 am
Ontem à(s) 8:44 am
Ontem à(s) 5:30 am
Ontem à(s) 12:25 am
Dom Ago 20, 2017 8:20 pm
Dom Ago 20, 2017 8:09 pm
Dom Ago 20, 2017 7:56 pm
Dom Ago 20, 2017 7:29 pm
Dom Ago 20, 2017 7:22 pm
Dom Ago 20, 2017 6:00 pm
Dom Ago 20, 2017 4:31 pm
Dom Ago 20, 2017 2:54 pm
Dom Ago 20, 2017 2:51 pm
Dom Ago 20, 2017 1:52 pm
Dom Ago 20, 2017 12:40 pm
Dom Ago 20, 2017 11:11 am
Dom Ago 20, 2017 12:31 am
Dom Ago 20, 2017 12:22 am
Dom Ago 20, 2017 12:17 am
Dom Ago 20, 2017 12:17 am
Sab Ago 19, 2017 11:44 pm
Sab Ago 19, 2017 8:55 pm
Sab Ago 19, 2017 8:46 pm
Sab Ago 19, 2017 8:35 pm
Sab Ago 19, 2017 7:40 pm
Sab Ago 19, 2017 5:14 pm
Sab Ago 19, 2017 4:17 pm
Sab Ago 19, 2017 3:47 pm
Sab Ago 19, 2017 10:33 am
Sab Ago 19, 2017 10:25 am
Sab Ago 19, 2017 5:53 am
Sex Ago 18, 2017 10:20 pm
Sex Ago 18, 2017 10:00 pm
Sex Ago 18, 2017 8:39 pm
Sex Ago 18, 2017 6:39 pm
Sex Ago 18, 2017 3:01 pm
Sex Ago 18, 2017 6:01 am
Sex Ago 18, 2017 12:04 am
Qui Ago 17, 2017 10:22 pm
Qui Ago 17, 2017 9:55 pm
Qui Ago 17, 2017 9:48 pm
Qui Ago 17, 2017 9:42 pm
Qui Ago 17, 2017 4:22 pm
Qui Ago 17, 2017 3:38 pm
Qui Ago 17, 2017 2:54 pm
Qui Ago 17, 2017 2:35 pm
Qui Ago 17, 2017 1:14 pm
Qui Ago 17, 2017 12:51 pm
Qui Ago 17, 2017 12:48 pm
Qui Ago 17, 2017 11:47 am
Qui Ago 17, 2017 11:09 am
Qui Ago 17, 2017 7:46 am
Qua Ago 16, 2017 10:19 pm
Qua Ago 16, 2017 9:55 pm
Qua Ago 16, 2017 9:10 pm
Qua Ago 16, 2017 9:03 pm
Qua Ago 16, 2017 8:01 pm
Qua Ago 16, 2017 1:17 pm
Qua Ago 16, 2017 11:49 am
Qua Ago 16, 2017 8:01 am
Ter Ago 15, 2017 7:29 pm
Ter Ago 15, 2017 5:06 pm
Ter Ago 15, 2017 5:06 pm
Ter Ago 15, 2017 1:47 pm
Ter Ago 15, 2017 11:52 am
Ter Ago 15, 2017 6:21 am
Seg Ago 14, 2017 11:28 pm
Seg Ago 14, 2017 11:04 pm
Seg Ago 14, 2017 10:06 pm
Seg Ago 14, 2017 7:19 pm
Seg Ago 14, 2017 6:18 pm
Seg Ago 14, 2017 5:55 pm
Seg Ago 14, 2017 5:52 pm
Seg Ago 14, 2017 5:37 pm
MendesBk
zOverLexYT
zOverLexYT
Gabriel César CORINTHIANS
Gabriel César CORINTHIANS
Gabriel César CORINTHIANS
Gabriel César CORINTHIANS
PauloFR
dstaroski
Duarte
dstaroski
Duarte
poker14k
Zecandy
Duarte
DUT
Gabriel César CORINTHIANS
michelly
MRX
AndyShow
AndyShow
Callyde Jr
dstaroski
Strikegames
zZAndersonZz
dstaroski
dstaroski
Regis garcia
marconi
SERGIOCS
Madness
Zecandy
cody0033
Valakinhas
ManoTrevor
Madness
BRGC
PauloFR
PauloFR
PauloFR
tom ramber
cody0033
NyanHeavyBR
rafaelllsd
cody0033
cody0033
BRGC
Manawydan
ManoTrevor
arnaldojunior
mbppedro
Eduardoro39
BRGC
dstaroski
dstaroski
Strikegames
zOverLexYT
Bruno
dstaroski
Dom3000
MiguelLuiz
zZAndersonZz
Jhin
Dom3000
juliano001
deikson
MasterWizzard
Duarte
MrTFGamer1
MatheusNani
deikson
HeF Soft
getrudes12@gmail.com
BloodyBS
deikson
Bruno
dstaroski
SERGIOCS
Vinicius F.
Duarte
Gabriel César O
Henrique0102
Zecandy
Callyde Jr
dstaroski
ffabim
AndyShow
Phph09
glauco
Bruno
Callyde Jr
Bruno11playerG
Gabriel César O
cody0033
Unidade3d5
Pancinha20
MarcosSchultz
MarcosSchultz
MarcosSchultz

[TUTORIAL] Som Dos Passos no FPS Controller (PELA TAG DO CHÃO)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

TUTORIAL [TUTORIAL] Som Dos Passos no FPS Controller (PELA TAG DO CHÃO)

Mensagem por MarcosSchultz em Qui Set 15, 2016 3:29 pm

Olá pessoal, elaborei uma maneira simples de executar o som dos passos de acordo com a tag do chão no FPS Controller que vem como padrão na Unity 5... trata-se de uma simples modificação no script do próprio controlador.

Vídeo explicativo:




Script modificado (basta substituir o script principal do seu FPS Controller por este):

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);
        }
    }
}
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9508
REPUTAÇÃO : 1613
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Som Dos Passos no FPS Controller (PELA TAG DO CHÃO)

Mensagem por AndyShow em Qui Set 15, 2016 3:58 pm

Bacana, Bem Legal! Parabéns!
avatar
AndyShow
Instrutor

Masculino PONTOS : 2201
REPUTAÇÃO : 537
Idade : 34
Áreas de atuação : Blender e Unity
Respeito as regras :

Ver perfil do usuário http://mundounity3d.forumbom.com/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Som Dos Passos no FPS Controller (PELA TAG DO CHÃO)

Mensagem por tom ramber em Sab Set 17, 2016 10:25 am

O Marcos tem como add sons de passos no Third Person
Controller ...em personagem modelo 3d
avatar
tom ramber
Avançado
Avançado

Masculino PONTOS : 483
REPUTAÇÃO : 9
Idade : 29
Áreas de atuação : Blender, Unity
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Som Dos Passos no FPS Controller (PELA TAG DO CHÃO)

Mensagem por MarcosSchultz em Seg Set 19, 2016 11:48 pm

Ter tem, mas vai ter que elaborar o próprio sistema, parecido com o que eu fiz aqui:



Vai ter que elaborar uma lógica própria já que o controlador não vem com o sistema em si.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9508
REPUTAÇÃO : 1613
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Som Dos Passos no FPS Controller (PELA TAG DO CHÃO)

Mensagem por dstaroski em Seg Nov 21, 2016 8:49 am

Parabéns brow! Exatamente o que eu precisava na etapa atual do meu projeto! Abração!
avatar
dstaroski
Instrutor

Masculino PONTOS : 1891
REPUTAÇÃO : 483
Idade : 28
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Daz3D and Gimp

Respeito as regras :

Ver perfil do usuário https://www.daz3d.com/gallery/users/1575361

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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