First Person Controller - Footsteps (EP09) [Unity Tutorial]

Поделиться
HTML-код
  • Опубликовано: 31 июл 2024
  • Long time no see! Back with a highly requested addition to the FPS controller series, this time we're going to add in footsteps to our characters. We're going to take into consideration different terrains and materials and allow you to play different sound effects depending on which surface you're walking over!
    Join me and learn your way through the Unity Game Engine, the C# language and the Visual Studio editor. Remember, if this video was useful then DROP A LIKE! 👍
    💯 Want to help me out and allow me to keep making these tutorials? Consider supporting the channel on Patreon:
    / comp3interactive
    🤩 SPONSORED LINKS:
    www.gigatank3000.com
    / gigatank3000
    🔊 SFX pack found here:
    sidearm-studios.itch.io/ultim...
    💬 Join the Discord community here:
    / discord
    📱 Follow me on Twitter:
    / comp3int
    📱 Play my games:
    PC/Mac/Linux: comp3interactive.itch.io/
    Google Play: bit.ly/2TisAQo
    #UnityTutorial #Unity3D #Comp3interactive #GameDev
    0:00 Intro
    0:56 Demo
    2:12 Adding the variables
    5:34 Scripting footsteps
    7:42 Setting up the tags
    8:40 Back to the script
    10:44 Inspector setup
    11:45 Ending

Комментарии • 118

  • @dremovremen1764
    @dremovremen1764 Год назад +15

    There's prolly an important comment about this obvious problem, but I haven't seen any, so:
    Mike made a mistake - line 261 should be "characterController.transform.position" instead of "playerCamera". In the correct case the tag-checking ray is coming down out of the character object, not the camera (and thus it has a fixed down-direction, while in case with the camera it's changing depending on where you're looking).

    • @andrewfrolov5144
      @andrewfrolov5144 11 месяцев назад +1

      you are a goddamn genius @dremovremen1764, that was so obvious actually that I couldn't even think of it =( Good catch, I was trying to understand what the issue is. Thanks!

    • @GabrielLopes-ou3ji
      @GabrielLopes-ou3ji 12 дней назад

      my hero

  • @yellow2188
    @yellow2188 2 года назад +25

    Great tutorial! Please make a sequel - jumping and landing sounds.

  • @tibbs3545
    @tibbs3545 Год назад +14

    After the if(footstepTimer

    • @Abracadaniels
      @Abracadaniels Год назад

      that really mess up the audio, it tries to play all the sounds at the same time

    • @vandermunnik
      @vandermunnik Год назад

      @@Abracadaniels That's weird. It worked for me. Did you put it directly under if(footstepTimer

  • @Wexra
    @Wexra 2 года назад +10

    I'm making my first complex video game and this series has helped so much! I'm hoping to get a demo done in the next months for a chance at a scholarship at one of my top choice schools, so thank you for making this series. So glad to see you back!

  • @gennarocc
    @gennarocc 2 года назад

    This series has been so incredibly helpful. Thank you!

  • @xil2331
    @xil2331 2 года назад

    Amazing video! Always wanted to know how this was done! Great to have you back!!!

  • @deadbroadcastpc
    @deadbroadcastpc 2 года назад

    Another great one my friend, glad to have you back

  • @garnishstudio3567
    @garnishstudio3567 Год назад

    Thanks a lot! That was really helpful. I jumped in on this episode without much coding experience, but was able to troubleshoot my way to a working solution, thanks to this video. Cheers!

  • @KH2FanLover
    @KH2FanLover 2 года назад +10

    I discovered you recently (like 1 month ago or so) and seeing a new video of you I was so excited but when you appeared I had a genuinely smile in my face.
    You are great if not excepcional at what you are doing here on RUclips and I was worried when you went into a little hiatus, not because ''Oh nooo where will I continue to see tutorialsss'' but because I was worried if something bad happened to you.
    I am so happy to see you ''back'' in action! :D Take your time to do videos whenever you can! We will always care first about you!
    On the video-side of this comment, as always, perfect, I really needed this not only to continue on a project BUT to truly investigate the magic behind it because I've been trying to do this myself for a loooong time for now but never saw a good/perfect way to do it! Keep up the good work!

    • @comp3interactive
      @comp3interactive  2 года назад +3

      Thanks for the kind words! All is good, just a little break and very busy on my own life. Tutorials will still be uploaded but less frequently for the time being. Thanks for watching ♥

  • @michaeldaniel967
    @michaeldaniel967 Год назад +7

    Love this tutorial series and it has been an absolute life saver to someone like me who is completely new to both Unity and programming - but as a few other people mentioned, this one doesn't cover jump/land sounds. I tried to figure it out on my own, using a combination of things covered in this tutorial and another FPS controller code I have which does have jumping sounds. I ALMOST got it to work, except there is a very annoying delay/feedback on the landing sound effect. I'm just using a generic jump and land sound, not separating the differing surface textures to make it easier on myself for now. I've tried a bunch of variations to try and get rid of it, but it won't go away.
    Below are the code alterations I made. Alterations are //commented for now, until I figure this bug out. Also utilized rows of dots to skip over redundant code bits, rather than copy/pasting the entire thing here.
    ........................
    [Header("Footstep Parameters")]
    ........................
    [SerializeField] private AudioClip[] concreteClips = default;
    //[SerializeField] private AudioClip jumpSound = default;
    //[SerializeField] private AudioClip landSound = default;
    //private bool m_PreviouslyGrounded;
    //private float NextStep;
    //private float StepCycle;
    private float footstepTimer = 0;
    ........................
    private void HandleJump()
    {
    if (ShouldJump)
    {
    moveDirection.y = jumpForce;
    //PlayJumpSound();
    }
    //if (!m_PreviouslyGrounded && characterController.isGrounded)
    //{
    //PlayLandingSound();
    //}
    //if (characterController.isGrounded && canJump &&m_PreviouslyGrounded)
    //m_PreviouslyGrounded = characterController.isGrounded;
    }
    //private void PlayJumpSound()
    //{
    //footstepAudioSource.clip = jumpSound;
    //footstepAudioSource.Play();
    //}
    //private void PlayLandingSound()
    //{
    //footstepAudioSource.clip = landSound;
    //footstepAudioSource.Play();
    //NextStep = StepCycle + .5f;
    //}
    Gonna send this to you as an e-mail, too, but thought posting here might get some community answers, also!

    • @MqMr
      @MqMr Год назад

      +1

    • @FONORX
      @FONORX 5 месяцев назад

      Found a solution?

  • @skymeyzz8431
    @skymeyzz8431 2 года назад

    Dude thanks alot for making this ! I really need it

  • @brunodanchev5738
    @brunodanchev5738 2 года назад +5

    You probably already know this but I'll still say it, you're a majestic man, with majestic code and a majestic heart, my question to you is whether you're going to teach us about Enemy A.I. soon? I've found this to be the most difficult of all. Have a fantastic day (if you want to, of course)!

  • @pixelpat5276
    @pixelpat5276 2 года назад +1

    How the hell did you know I needed this video today LMAO

  • @nutsandy7183
    @nutsandy7183 2 года назад

    Brilliant, thanks Mike :)

  • @brynarn
    @brynarn 2 года назад

    Great video!

  • @shang_psycho7414
    @shang_psycho7414 Год назад

    This worked, thanks!

  • @bloodybeats4101
    @bloodybeats4101 2 года назад +4

    how would i add a jump effect and a landing sound effect? like play "Blank" sound on jump up, and play "Blank2" sound on landing?

  • @joshnjoshgaming
    @joshnjoshgaming 2 года назад

    excellent tutorial

  • @pedropc5824
    @pedropc5824 2 года назад

    This was amazing, i will use a lot. I don't know if you have that ideia for yours upcoming videos, but a dialogue system with choses can be a amazing new series;

  • @gabrielwhite9881
    @gabrielwhite9881 2 года назад +4

    Is there also a way to ding out what texture is underneath of the player, to get it work for terrains?

  • @adrianvaldiviesoparedes4339
    @adrianvaldiviesoparedes4339 5 месяцев назад

    You are awesome bro, thank you for ypur explanaition

  • @dunderguy
    @dunderguy Год назад

    Thanks it works

  • @lindal93
    @lindal93 Год назад +2

    Thank you for tutorial! Maybe you know how to solve the problem: how to make sure that two identical step sounds are not repeated? I mean, it sounds pretty strange when one sound is repeated several times while walking, it may seem that the player is walking on one foot.

  • @benjaminbriggs8640
    @benjaminbriggs8640 2 года назад

    the heckin best yo

  • @Restart-Gaming
    @Restart-Gaming 2 года назад

    Do you have any tutorials on making a first person shooter? I bought a first person pack off unity that come with all the arms guns and animation would like to use them in my game map? hope you can help

  • @blast8ify
    @blast8ify Год назад

    Heya, thanks for your tutorial. I have a problem, when I start tge game, i make one step and stop, but the footstep sound keeps playing

  • @frostmusicofficial
    @frostmusicofficial 2 года назад +3

    You are AMAZING! I never could understand how footstep audio would be possible, various assets never worked for me, thanks a ton man!
    Question though, I use terrain on some various parts of my map, is there any way I could use the raycast to detect the actual material on the part of terrain I'm on to change the audio?

    • @comp3interactive
      @comp3interactive  2 года назад +2

      These is a way to do different sounds on terrain, I was going to do an additional video soon about that, you need to use the Splat map and check the position of the player vs the texture assigned to that position of the terrain. I didn't want to lump that in to this tutorial because it's quite a long process and this one was already a long video

  • @user-ru5ny8id3p
    @user-ru5ny8id3p 2 года назад +1

    Thank you for your tutorials. Can you please make another one about animations?

  • @X_Daniel466
    @X_Daniel466 2 года назад

    With tags i did not know about the foldout thanks.

  • @monkeyrobotsinc.9875
    @monkeyrobotsinc.9875 Год назад +1

    really good WOWwoowOWOWowoWOWOW

  • @CRUMVIII
    @CRUMVIII 2 года назад +7

    I literally had no idea you can make folders for tags... Learn something neat everyday.

    • @comp3interactive
      @comp3interactive  2 года назад +4

      Same goes for Layers too!

    • @ArzenikRawr
      @ArzenikRawr Месяц назад

      WHAAAAAAATTTTTTTTTTTT WHYYYY CAN YIU DO THAT.💀💀💀💀💀​@@comp3interactive

  • @arminrad5357
    @arminrad5357 Год назад

    thanks

  • @eumystik7703
    @eumystik7703 2 года назад

    csn someone please help me, it only does the sounds while im jumping.

  • @marka.alvareznieves9213
    @marka.alvareznieves9213 Год назад

    Where can I find this script up to this point? I'm interested in making a video game and I'm working on making a sound while crossing puddles of water and activating a echo location-like sound and vfx that spread around the world map within a radius. If anyone can help me or point me in the right direction it would be much appreciated.

  • @BlueVoid476
    @BlueVoid476 8 месяцев назад

    One question, when you use footstepAudioSource.PlayOneShot... In the Random.Range part, do you use UnityEngine.Random or System.Random?

  • @brick1488
    @brick1488 9 месяцев назад

    im a bit late but when i walk on the surface it only playes once and then dosent play again

  • @drackofeu3122
    @drackofeu3122 2 года назад

    thanks ::D

  • @infernogamey374
    @infernogamey374 2 года назад

    i don't know why but i had 8 diffrent vids and non worked this one worked (even tho i had to improvise lol but it was fun) i was about to give up really now i only have some wierd bug where i hear sound nother sound then a long pauze and again sounds for like 3 or 5 sounds and then again a pauze does anyone know how this is happening?

  • @flashbacksoft
    @flashbacksoft 2 года назад +8

    Hi! Great tutorial. I had a question. I'm having an issue where the floor I'm walking on (I just created a big cube to walk on), which has one of these tags applied, sometimes the footstep sounds play but other times not, depending where on the cube I'm walking. I tried printing out the tag from the raycast and as I thought, sometimes unity displays the name of tag as expected, and other times it says that the object I'm walking on is untagged. Thanks for any advice/help.
    EDIT: Figured it out. For anyone having the same problem, print out the layer of the object the Ray hits (in my case it was hitting the player itself), and make a layer mask to only collide with an object on a separate ground layer if that makes sense.

    • @SurplussMan
      @SurplussMan 2 года назад +1

      Your tip was helpful.
      I'm sharing the code just in case someone else needs it.
      1. Add 'Player' layer to your player's layer.
      2. insert the code below.
      int layerMask = (-1) - (1

    • @Maskeowl
      @Maskeowl 2 года назад +1

      ​@@SurplussMan i hed error but i fix it now idi use that version of yours
      int layerMask = ~LayerMask.GetMask("Player");
      and i write it on samevoid other way it doesnt work

  • @pacojgomez
    @pacojgomez 2 года назад

    Hello, I am delighted with your tutorials. Although I have a problem: when the player stops you can hear another step, you can avoid this. Thank you.

  • @davichalitameneguelli6628
    @davichalitameneguelli6628 2 года назад

    Hey! Really great tutorial thank you very much for it! I'm a newbie with Unity although I'm familiar with programming so it's helping me a lot!
    I just wanna point two stuff out: first one is that the audio needs to be of a small length (around 1 sec), at first I tried a longer one (around 20 secs) but the audio kept overlapping with the next walking interaction so it wasn't working properly;
    the second one is that I'm not sure if I got something wrong but in the line "private float GetCurrentOffset => IsSprinting ? baseStepSpeed * sprintStepMultiplier : baseStepSpeed;" multiplying 0.5 with 1.5 would actually delay the audio between each footstep instead of making it play faster, so I used the divison and the audio played correctly when the character sprints.
    Thank you again and keep up with the great work!

    • @sborropoly6949
      @sborropoly6949 Год назад

      wait can u explain better what should i write on that line of code please?

    • @sborropoly6949
      @sborropoly6949 Год назад

      ok nvm i understood, but do you know a way to make it sound when you jump?

  • @fast07hzmc401
    @fast07hzmc401 2 года назад +1

    I have a question but when i try to write
    footstepAudioSource.PlayOneShot(metalClips[Random.Range(0, metalClips.Length - 1)]); it says
    AudioSource does not contain a definition for "Length" and no accessible extension method "Length" accepting a first argument of type 'AudioSoucre' could not be found (are you missing a using directive of an assembly reference?)
    I'm kinda new to Unity so yeah would be nice to get some help (:

    • @fast07hzmc401
      @fast07hzmc401 2 года назад

      Nevermind found the problem.

    • @iamjustaduck7592
      @iamjustaduck7592 2 года назад +1

      ​@Tomás de la Canal make sure your variable has an array / is a list

    • @BLANK-eb5xv
      @BLANK-eb5xv 2 года назад

      @@iamjustaduck7592 lol

  • @headhunter531
    @headhunter531 9 месяцев назад

    When i type
    footStepAudioSource.PlayOneShot(______Clips[Random.Range(0, ______Clips.Length -1)]);
    It shows an error under "Range" and says " 'Random' does not contain a definition for 'Range'. "
    What am doing wrong? Am i missing any files or something?

  • @SamNBCA
    @SamNBCA Год назад

    Not working for me.
    When debug out my raycast I'm detecting the player collider and not the ground.
    Any idea what i've missed?

    • @InfidelAtWork
      @InfidelAtWork 9 месяцев назад

      did you solve the problem? I am working on it right now

    • @sarahkleber4201
      @sarahkleber4201 8 месяцев назад

      @@InfidelAtWork did you solve it? I have the same problem :/

  • @stefanwuttig
    @stefanwuttig 2 года назад +1

    I have some issues. The sound doesnt play. I have no errors. do i miss something?

    • @calebharrison5412
      @calebharrison5412 2 года назад

      I had the same issue, although I fixed it by checking the if statement in HandleFootsteps(). Make sure the condition is (!characterController.isGrounded) and not (characterController.isGrounded)... The exclamation mark is important in this..

    • @TheMavryan
      @TheMavryan 7 месяцев назад

      Hey I know its been a while but I had the same issue and I found that I had the scene audio toggled off. Might be that.

  • @sborropoly
    @sborropoly 2 года назад

    I need help pls. why in the line 255 it says that "==" cannot be used for vector2 or vector3? it gives me this message as an error

    • @comp3interactive
      @comp3interactive  2 года назад

      Vector2 and Vector3 are different classes, equality can't be performed on two different class types. I assume your currentInput is a Vector3 and not a Vector2

    • @sborropoly
      @sborropoly 2 года назад

      @@comp3interactive have you got a more direct contact like discord please? i did everything like the video and my code looks like is identical to yours, i really cant understand where is the problem and it gives everytime the same error Compiler Error CS0034

    • @The1Wolfcast
      @The1Wolfcast 2 года назад

      Make sure your "private Vector2 currentInput;" is not " private Vector3 currentInput;" its around line 118

    • @sborropoly
      @sborropoly 2 года назад +1

      holy shit i couldnt find it, ty very much my friend

    • @sborropoly
      @sborropoly 2 года назад

      @@The1Wolfcast and can u tell me why on the line 333 it gives me an error that i cant convert from "UnityEngine.AudioSource" to "UnityEngine.AudioClip"? i already did the halth system and in that video he told to put
      footStepAudioSource.PlayOneShot(woodClips[UnityEngine.Random.Range(0, woodClips.Length - 1)]);
      instead of
      footStepAudioSource.PlayOneShot(woodClips[Random.Range(0, woodClips.Length - 1)]);

  • @infernogamey374
    @infernogamey374 2 года назад

    does anyone know why my footstep sounds keep playing even if i stand still i already ran true my code but i still have no clue

    • @comp3interactive
      @comp3interactive  2 года назад

      Turn off looping on the audio source

    • @infernogamey374
      @infernogamey374 Год назад

      @@nilgor70 just turn of the looping i think that helped me with this issue back in the day

    • @infernogamey374
      @infernogamey374 Год назад

      @@nilgor70 sorry didn't really get what you ment with unticked but my look is about 2 seconds long so it should be that problem i don't really remeber anymore because its been a long time since i did that part of my game so its just a wild guess but did you somehow make a little loop inside you're code like made it so it doesn't switch off or maybe did you check you're tags you gave the objects you're controller is standing on?

  • @residentsicko
    @residentsicko 2 года назад +2

    Awesome video as usual mate.
    I hate to be "That Guy" but I have triple checked that everything is the same, usually it is some small thing I've missed.
    The sounds won't switch!? I've messed about a bit and from what I can see it is playing the default sound no matter the tag. I think.
    I know it's a vague explanation but any idea where I've messed up?

    • @comp3interactive
      @comp3interactive  2 года назад

      Common errors with this are incorrect capitalisation for the tags vs the code (tags are case sensitive), mis spellings on tags vs code, the raycast isn't long enough so it's actually reaching the floor
      I'd start by throwing out a few debug logs to make sure your Ray is hitting the ground and also, if it is hitting, which channels you're going through / what's the tag of the object you've hit

    • @residentsicko
      @residentsicko 2 года назад +1

      @@comp3interactive Thanks mate. I'll give that a try and see how it goes.

    • @residentsicko
      @residentsicko 2 года назад

      @@comp3interactive It seems the raycast is hitting only the player and being as the player is untagged it's defaulting the sound.

    • @comp3interactive
      @comp3interactive  2 года назад +1

      Hmm. Is your Ray starting from inside of the player collider? By default it should ignore its self if the start point is inside the origin collider and reaches outside that collider too
      If all else fails you can use layers to filter the footstep raycast, omit a Player layer from the check and assign the player to that layer

    • @residentsicko
      @residentsicko 2 года назад +1

      @@comp3interactive Yeah the raycast starts from the fps camera which is inside but a child of the char controller. I'll try the layer mask idea. Thanks a lot mate and keep up the great videos. They inspire me not to give up when I come across an issue.

  • @SamuelArmer
    @SamuelArmer 2 года назад +2

    after completeing this tutorial i get an error "IndexOutOfRangeException: Index was outside the bounds of the array." before this tutorial I had no problems and was working fine

    • @s.kumari3217
      @s.kumari3217 2 года назад

      Same.

    • @its_fabled
      @its_fabled 2 года назад

      Did you drop at least one audio clip in your *Material* Clips arrays in the inspector?

    • @SamuelArmer
      @SamuelArmer 2 года назад

      @@its_fabled yes there are three in all 3 arrays. Now there is no error just no sound. My audio source is on my player and it is put into the ‘footsteps audio source’

    • @its_fabled
      @its_fabled 2 года назад

      @@SamuelArmer It worked in my case after getting this error message. I have no other ideas than double checking the code and the tagging process in the video. :/

    • @TheMavryan
      @TheMavryan 7 месяцев назад

      I had the same error with Dirt. I hadn't written 0, dirtClips.Length - 1 correctly from when I copied it from wood. So it would play the first dirt sound but not the others. When I corrected the wording it fixed it

  • @bmcg3712
    @bmcg3712 2 года назад

    These videos have been incredibly helpful! Thank you!!
    Unfortunately, I've been over and over this one and can't get it to work! Every individual footstep sound plays simultaneously, once, when movement starts, and then doesn't play again. I can't figure out what's going wrong! Can you offer any insight?

    • @jarvonoir1972
      @jarvonoir1972 2 года назад

      Try unchecking "Play on Awake" on the audio clip (I think that is what it is called)

  • @keylon4518
    @keylon4518 2 года назад +2

    Can your next video be stamina/health system?

    • @comp3interactive
      @comp3interactive  2 года назад +2

      That's actually a good idea!

    • @keylon4518
      @keylon4518 2 года назад

      @@comp3interactive I also think swimming would be awesome!

  • @RakoGamesOfficial
    @RakoGamesOfficial Год назад

    pretty cool video BUT,
    you're supposed to be using lowerCamelCase for variable names
    and UpperCamelCase for method and class naming

    • @comp3interactive
      @comp3interactive  Год назад +2

      1 - naming conventions are a best practice, not a requirement
      2 - I already use this convention, I'm going to assume you're referring to the property values which are often uppercase in this format to denote a difference to a standard variable

  • @lordkrythic6246
    @lordkrythic6246 Год назад

    Your sound links are broken. I also emailed you with a request. Thank you.

    • @cecavacd
      @cecavacd Год назад

      Those got banned from both Unity Asset Store and Itch. They were pirated and stolen from other big company.

    • @cecavacd
      @cecavacd Год назад

      I can send you that pack if you want but it's 6gb large.

    • @lordkrythic6246
      @lordkrythic6246 Год назад +1

      @@cecavacd It sounds like I can't use it in a commercial project.

  • @RiverHorse01
    @RiverHorse01 Год назад +1

    Not working, i just get the default case

    • @comp3interactive
      @comp3interactive  Год назад +1

      Probably time to check your code and tags match up... They're case sensitive

    • @lordkrythic6246
      @lordkrythic6246 Год назад

      @@comp3interactive
      I'm having the same issue.

    • @lordkrythic6246
      @lordkrythic6246 Год назад

      Did you figure out what was wrong? I'm having the same issue.

    • @lordkrythic6246
      @lordkrythic6246 Год назад

      @@comp3interactive
      I think I figured it out, but I haven't fixed it yet. If I print the tag that it's colliding with, it returns "MainCamera" as the tag, which means the ray is hitting the player and not the ground beneath it.

    • @lordkrythic6246
      @lordkrythic6246 Год назад +2

      @@comp3interactive Figured it out. I needed to use the chractercontroller and not the camera. "if (Physics.Raycast(characterController.transform.position, Vector3.down, out RaycastHit hit, 3))" If you raycast from the camera down, it will only ever collide with the camera. Don't know why? Did something change in the unity api to cause this?

  • @InfidelAtWork
    @InfidelAtWork 9 месяцев назад

    My FP Controller sometimes "loses" steps sounds. I debugged layers using this code:
    private void Update()
    {
    // Set a ray starting point at the player's position (typically at the player's feet).
    Vector3 rayOrigin = transform.position;
    // Cast a ray downward.
    Ray ray = new Ray(rayOrigin, Vector3.down);
    RaycastHit hit;
    // Define a layer mask to specify which layers you want to check (e.g., Terrain).
    int layerMask = LayerMask.GetMask("Terrain");
    // Perform the raycast and check if it hits anything on the specified layer.
    if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask))
    {
    // Get the name of the layer that was hit.
    string layerName = LayerMask.LayerToName(hit.transform.gameObject.layer);
    // Print the layer name to the console.
    Debug.Log("Player is standing on layer: " + layerName);
    }
    }
    and it shows that player is standing on Default layer all the time
    Don't know what is wrong. Any idea?
    I tried to use this from comments below, but it did not help:
    1. Add 'Player' layer to your player's layer.
    2. insert the code below.
    int layerMask = (-1) - (1

    • @FONORX
      @FONORX 5 месяцев назад

      just do it - Ignore raycasts for CC

  • @pedropc5824
    @pedropc5824 2 года назад +2

    I just don't understand why use playercamera transform instead of character controller transform. That worked for me

    • @FONORX
      @FONORX 2 года назад

      After that, my crouch sounds don't work.
      And if "playerCamera.transform.position" - sounds of different surfaces worked only during crouching.

  • @Kimarnic
    @Kimarnic Год назад

    WARNING: THE DOWNLOAD FILE IS 9.99$, IF YOU'RE NOT GONNA BUY IT, THEN CLOSE THIS VIDEO
    waste of my time

    • @comp3interactive
      @comp3interactive  Год назад +9

      The sound effects pack I use in the tutorial is £9.99... You know you can source your own free sound effects right?

    • @GoldenYT01
      @GoldenYT01 Год назад +1

      i found some decent ones online just use google