Introduction to VR in Unity - PART 9 : CLIMBING

  Рет қаралды 42,873

Valem

Valem

Күн бұрын

We learned to move smoothly, to teleport and today I will show you how to climb with the Unity XR Toolkit.
❤️ Support on Patreon : / valemvr
🔔 Subscribe : www.youtube.co...
🌍 Discord : / discord
🐦Twitter : va...
🔥 Tiktok : / valemxr
👍 Learn VR Development : www.youtube.co...
Download the wall : drive.google.c...
NEXT EPISODE : • Introduction to VR in ...
PREVIOUS EPISODE : • Introduction to VR in ...
····················································································
📝Best VR Assets ( These links are Affiliate links which means it costs the same to you and I get a small commission. Thanks for your support!)
VR Interaction Framework
assetstore.uni...
Hexabody (Physics VR Player)
assetstore.uni...
Mirror and Reflection for VR
assetstore.uni...
Auto Hand (automatic hand grab pose)
assetstore.uni...
Hurricane VR (vr physics interaction)
assetstore.uni...
3d Hand Model for VR
assetstore.uni...
····················································································
Full Series on How to make a VR game • How to Make a VR Game ...
····················································································
If you want to learn VR dev, here are some other really good channel you should appreciate :
⌨️ Game Dev
Brackeys : / @brackeys
Dani : / @danidev
Code Monkey : / @codemonkeyunity
👨‍🎓 Vr Dev
Valem Tutorials : / @valemtutorials
Justin P Barnett : / @justinpbarnett
Vr with Andrew : / @vrwithandrew
····················································································
#vr #vrdev #madewithunity #valem #unity

Пікірлер: 183
@ValemVR
@ValemVR Жыл бұрын
Hey guys ! I made an update of this series on my channel Valem tutorial that you can find here : kzbin.info/www/bejne/nH6TnGWkbNprqcU
@lucutes2936
@lucutes2936 4 ай бұрын
first like
@soareverix
@soareverix 4 жыл бұрын
Valem, you are legitimately pushing forward the entire VR industry with your tutorials! The impact you're making is huge! I just joined your Patreon and I feel so good about it! :D
@rjerezc
@rjerezc 4 жыл бұрын
I agree. These tutorial are giving us so many great tools to work in vr ♥️
@nicshep7556
@nicshep7556 4 жыл бұрын
I have decided to try to make a game based off what I have learned from your tutorials and one of the aspects of the game just so happened to be climbing. These tutorials are the best, keep up the great work.
@rikusoulz
@rikusoulz 3 жыл бұрын
Big thanks for this tutorial! Just to clarify for the people that use the new plugin, I wanted to help so don't mess around like I did with the problems. For those that use the new XR Toolkit Plugin - Continuous Move Provider (Device-Based) you will need to implement it on the code like this: Replacing the first variable for: private DeviceBasedContinuousMoveProvider continuousMovement; And replacing inside the start function with: continuousMovement = GetComponent(); And will work, but you will find a problem I've been searching that when you stop climbing, you won't fall until you move. You can solve it by going into the Inspector of the VR Rig, on the Continuous Move Provider (Device-Based) plugin, there is a property called "Gravity Application Mode" by default set to "Attempting Move", change it to "Immediately" and will work.
@Brodymaines
@Brodymaines 3 жыл бұрын
it didnt work
@rikusoulz
@rikusoulz 3 жыл бұрын
Just noticed that if you put "Immediately" you will mess up your locomotion teleportation system so still trying to figure how to do this
@Brodymaines
@Brodymaines 3 жыл бұрын
@@rikusoulz ok it works but the XROffsetGrabInteractable.OnSelectEnter(XRBaseInteractor) is no method found to override please help
@mr.awesome5109
@mr.awesome5109 3 жыл бұрын
Me: Clicks on video Valem: You again?
@ValemVR
@ValemVR 3 жыл бұрын
Hello
@mr.awesome5109
@mr.awesome5109 3 жыл бұрын
@@ValemVR Also I'm getting this message with OnSelectEnter and a similar message with OnSelectExit: Assets\Scripts\Climbing\ClimbInteractable.cs(13,29): error CS0115: 'ClimbInteractable.OnSelectEnter(XRBaseInteractable)': no suitable method found to override
@ValemVR
@ValemVR 3 жыл бұрын
They changed the name to onselectedentered or something similar :/ try just writing the start and see what the code want to autocomplete for this one :)
@archerassassin8
@archerassassin8 Жыл бұрын
UPDATED SCRIPTS - Jan 2023 These are a combination of different solutions I found in other comments ===Climber=== public CharacterController character; public static ActionBasedController climbingHand; private ContinuousMovementOverride continuousMovement; private ActionBasedController previousHand; private Vector3 previousPos; private Vector3 currentVelocity; // Start is called before the first frame update void Start() { continuousMovement = GetComponent(); } void Update() { if (climbingHand) { if (previousHand == null) { previousHand = climbingHand; previousPos = climbingHand.positionAction.action.ReadValue(); } if (climbingHand.name != previousHand.name) { previousHand = climbingHand; previousPos = climbingHand.positionAction.action.ReadValue(); //Debug.Log("DIFFERENT HAND NOW"); } continuousMovement.enabled = false; Climb(); } else { continuousMovement.enabled = true; } } void Climb() { currentVelocity = (climbingHand.positionAction.action.ReadValue() - previousPos) / Time.deltaTime; character.Move(transform.rotation * -currentVelocity * Time.deltaTime); previousPos = climbingHand.positionAction.action.ReadValue(); } ===ClimbInteractable=== protected override void OnSelectEntered(SelectEnterEventArgs args) { if (args.interactorObject is XRDirectInteractor) { Climber.climbingHand = args.interactorObject.transform.GetComponent(); } base.OnSelectEntered(args); } protected override void OnSelectExited(SelectExitEventArgs args) { if (Climber.climbingHand && Climber.climbingHand.name == args.interactorObject.transform.name) { Climber.climbingHand = null; } base.OnSelectExited(args); }
@oOmrPeanutOo
@oOmrPeanutOo 4 жыл бұрын
another HYPE video, well made Valem!
@ValemVR
@ValemVR 4 жыл бұрын
Thanks for the wall mr peanut!
@adhochero6619
@adhochero6619 4 жыл бұрын
@@ValemVR one question. when you are climbing, the characterController stays at the same height it was and starts down at your feet. it makes it very hard to pull yourself onto whatever it is you are climbing. what is a good solution to this, to get onto the top of the climbing wall?
@pixelb0i255
@pixelb0i255 4 жыл бұрын
Valem before getting to this video, I’d like to know how you solved objects being held in hand while in motion (walking) stop jerking around. How to make the objects a child of the hand when it is held. I’m thinking this might solve the jittery effects. Thanks
@Xzarations
@Xzarations 4 жыл бұрын
Yes finally the one I have been waiting for! Thanks so much!!!
@migueltorresjr
@migueltorresjr 3 жыл бұрын
Hopefully this amazing serie will back one day :D
@fartpotatoe8275
@fartpotatoe8275 3 жыл бұрын
Long time fan and I just wanna say thank you you’ve inspired me to try unity 👍 keep inspiring others
@harammedianews8861
@harammedianews8861 4 жыл бұрын
You're the best VR Unity developer ever! The only thing we need now is dual-wielding guns! The only tutorial on it is from VR With Andrew and is quite hard to understand. Thanks!
@miserablepile
@miserablepile 3 жыл бұрын
For action based input - Add velocity actions to your action mapping. Bind to the openXR velocity path for your controllers (oculusTouch/index/etc). Reference that action in some script (I put mine in XRHandPresence) with a getter, then reference that script and getter in your climb scripts! Valem, you're awesome, thank you for your tutorials!
@pablo_palma
@pablo_palma Жыл бұрын
Hi! Can you show how you did that? I have the reference in script, but i'm not sure where i have to get the reference then.
@conraddugger4165
@conraddugger4165 4 жыл бұрын
I have BEEN NEEDING THIS FOR MONTHS! Thank you for the amazing work!!
@KentHambrock
@KentHambrock 4 жыл бұрын
This series needs more attention. This is a quality tutorial series.
@THOMASXDXDXDXD
@THOMASXDXDXDXD 4 жыл бұрын
These Unity XR Toolkit tutorials are the best! Thanks a lot, Valem!
@Skeffles
@Skeffles 4 жыл бұрын
Fantastic tutorial. Glad you've taken the initiative to make such a well defined VR tutorial.
@ellieelias6336
@ellieelias6336 2 жыл бұрын
Your French accent is AWESOME! I love clicking a video and hearing your voice, because I know the content coming in is gonna be EPIC! 😙👌 (My emojis don't have the "chefs kiss" hand, but you get the picture 😂 )
@TayoEXE
@TayoEXE 4 жыл бұрын
It's so much cleaner than my XR implementation for climbing during the VR Jam. Another great video!
@JoesZone
@JoesZone 3 жыл бұрын
Awesome, thanks for this. The locomotion tutorial broke my shoddy climbing system that i built. Yours works so much better
@hendrikpietrzyk1619
@hendrikpietrzyk1619 3 жыл бұрын
For anyone trying to implement this with the new Action based Input System, here is my implementation. As far as I know theres no controller velocity provided, so you have to implement it yourself: public class Climber : MonoBehaviour { private CharacterController characterController; public static ActionBasedController climbingHand; private ActionBasedContinuousMoveProvider continuousMovement; private ActionBasedController previousHand; private Vector3 previousPos; private Vector3 currentVelocity; void Start() { characterController = GetComponent(); continuousMovement = GetComponent(); Debug.Log(previousPos); } void FixedUpdate() { if (climbingHand) { if(previousHand == null) { previousHand = climbingHand; previousPos = climbingHand.positionAction.action.ReadValue(); } if(climbingHand.name != previousHand.name) { previousHand = climbingHand; previousPos = climbingHand.positionAction.action.ReadValue(); Debug.Log("DIFFERENT HAND NOW"); } continuousMovement.enabled = false; Climb(); } else { continuousMovement.enabled = true; } } private void Climb() { currentVelocity = (climbingHand.positionAction.action.ReadValue() - previousPos)/ Time.deltaTime; characterController.Move(transform.rotation * -currentVelocity * Time.deltaTime); previousPos = climbingHand.positionAction.action.ReadValue(); } }
@Dodger5163
@Dodger5163 3 жыл бұрын
In inputactions you can add devicevelocity to an action and use that instead of positionaction. I tested with adding a binding(devicevelocity) to the haptic action but you will have to change action type and control type to value and vector3. Then in c# vec = climbingHand.hapticDeviceAction.action.ReadValue(); character.transform.Translate(transform.rotation * -vec * Time.fixedDeltaTime); this works pretty good, will have to sacrify haptics.
@hendrikpietrzyk1619
@hendrikpietrzyk1619 3 жыл бұрын
@@Dodger5163Ahh thats cool, I didnt know that. Thanks!
@corygreaves1227
@corygreaves1227 3 жыл бұрын
I've been working on this for over a week, I have a headache and I want to cry.
@corygreaves1227
@corygreaves1227 3 жыл бұрын
Over a month now. I've cried but I'm going to get this.
@archerassassin8
@archerassassin8 Жыл бұрын
@@corygreaves1227 did you get it?
@Darkxside14
@Darkxside14 4 жыл бұрын
Thanks for doing this man ^.^ I'm new to VR development and your video's help a lot!
@sikaar
@sikaar 4 жыл бұрын
AS usual really great tutorial ! Thanks a lot for sharing !
@MandMs05
@MandMs05 3 жыл бұрын
"Horrible French accent" Hey, I can understand you, which is what matters the absolute most. And makes me feel much better about my American English accent when speaking German. And trying to learn French as well, I feel very intimidated by the pronunciation of French words and can't ever seem to get it right. And while I've never had any native French speakers tell me what they think, I've heard non-natives tell me how they notice literally every single imperfection, and have heard that they're extremely unkind about it, which makes it even more intimidating. Each of the 3 languages I'm learning has its own pronunciation challenges. Hearing Russians, French people, or Germans acknowledge that it's difficult to pronounce another language is very comforting and helps me feel better about trying to speak their language.
@jonathandouglas4246
@jonathandouglas4246 2 жыл бұрын
If anyone needs it... CLIMB INTERACTABLE: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; using UnityEngine.XR.Interaction.Toolkit; public class ClimbInteractable : XRBaseInteractable { protected override void OnSelectEntered(SelectEnterEventArgs args) { XRBaseInteractor interactor = args.interactor; base.OnSelectEntered(args); if (interactor is XRDirectInteractor) { Climber.climbingHand = interactor.GetComponent(); } } protected override void OnSelectExited(SelectExitEventArgs args) { XRBaseInteractor interactor = args.interactor; base.OnSelectExited(args); if (Climber.climbingHand && Climber.climbingHand.name == interactor.name) { Climber.climbingHand = null; } } } CLIMBER: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; using UnityEngine.XR.Interaction.Toolkit; public class Climber : MonoBehaviour { private CharacterController character; public static XRController climbingHand; private ContinuousMovement continuousMovement; void Start() { character = GetComponent(); continuousMovement = GetComponent(); } void FixedUpdate() { if (climbingHand) { continuousMovement.enabled = false; Climb(); } else { continuousMovement.enabled = true; } } void Climb() { InputDevices.GetDeviceAtXRNode(climbingHand.controllerNode).TryGetFeatureValue(CommonUsages.deviceVelocity, out Vector3 velocity); character.Move(transform.rotation * -velocity * Time.fixedDeltaTime); } }
@georgebeblo7009
@georgebeblo7009 2 жыл бұрын
goat talk
@TableLamp720
@TableLamp720 2 жыл бұрын
God
@rubycart123
@rubycart123 Жыл бұрын
thanks man. for some reason i wrote this exact code and it didnt work but now it does.
@elitefusionz02
@elitefusionz02 Жыл бұрын
" args.interactor;" That one line says it was deprecated. Any fixes?
@Kingstantin
@Kingstantin Жыл бұрын
@@elitefusionz02 Same here, desperately looking for a solution! Did you find any? Please let me know
@alexanderblumeboldsen8978
@alexanderblumeboldsen8978 4 жыл бұрын
the people writing comments right now (like me) hasn't even watched the whole video lol!
@GloryMeat
@GloryMeat 4 жыл бұрын
Why am I watching this? I don't even own a VR headset...yet... Great tutorials btw, I'm learning so much from them!
@frankierodriguez788
@frankierodriguez788 3 жыл бұрын
Do you have a VR headset yet?
@GloryMeat
@GloryMeat 3 жыл бұрын
@@frankierodriguez788 I do now :D
@frankierodriguez788
@frankierodriguez788 3 жыл бұрын
@@GloryMeat nice
@Bricksalive
@Bricksalive 3 жыл бұрын
How would I make the player able to throw themselves off a climbing knob? I tried using addforce if the hand -velocity (im using a rigidbody player instead of character controller) but that isn't working very smoothly?
@bertrandr.6183
@bertrandr.6183 2 жыл бұрын
Did you ever figure this out?
@Bricksalive
@Bricksalive 2 жыл бұрын
@@bertrandr.6183 not really sorry😞 kinda moved on to other projects now so haven't been experimenting with climbing for a while. I still would like to know the answer
@mario123mario123
@mario123mario123 3 жыл бұрын
Very nice Tutorial @Valem :) I like it a lot.!
@TheBlastoiseGuy
@TheBlastoiseGuy 3 жыл бұрын
Valem, I instantly hit the ground when I let go of the wall. Did I miss the part where it resets gravity acceleration?
@Need2pee
@Need2pee 2 жыл бұрын
Did you fix it ? If yes what was causing the problem?
@neomasaki3234
@neomasaki3234 2 жыл бұрын
The more updated version (I'm using Unity 2021.1.21f1) using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; using UnityEngine.XR.Interaction.Toolkit; public class ClimbInteractable : XRBaseInteractable { protected override void OnSelectEntered(SelectEnterEventArgs args) { XRBaseInteractor interactor = args.interactor; base.OnSelectEntered(args); if (interactor is XRDirectInteractor) { Climber.climbingHand = interactor.GetComponent(); } } protected override void OnSelectExited(SelectExitEventArgs args) { XRBaseInteractor interactor = args.interactor; base.OnSelectExited(args); if(Climber.climbingHand && Climber.climbingHand.name == interactor.name) { Climber.climbingHand = null; } } }
@toomystical4498
@toomystical4498 2 жыл бұрын
Thank You!!!!!
@aryzhol408
@aryzhol408 2 жыл бұрын
You! Star! Thanks.
@an0maly404
@an0maly404 4 жыл бұрын
Je me disais bien que t'avais un accent qui m'était familier ! Des vidéos parfaite, comme d'hab, bien joué ^-^
@benwilliams1919
@benwilliams1919 4 жыл бұрын
Valem, your tutorials are amazing!
@adhochero6619
@adhochero6619 4 жыл бұрын
so clean and simple solution. great tutorial. thanks!
@Bricksalive
@Bricksalive 3 жыл бұрын
How can I check if the player hand has moved too far away from the climb knob interactor to detach hand?
@TUMENG-TSUNGF
@TUMENG-TSUNGF 2 жыл бұрын
I'd like to know that too.
@igorh9353
@igorh9353 4 жыл бұрын
This videos are really awesome, keep it up!!! Helps a lot!!
@zerofishersally
@zerofishersally 4 жыл бұрын
I like your accent, I'm having no problems with it!
@vilelminigotsi4064
@vilelminigotsi4064 3 жыл бұрын
Hello Valem! Do you know how this can be done with the new input system?
@alexganvo1457
@alexganvo1457 2 жыл бұрын
J'en étais sur tu es français! Un grand merci pour tout ce que tu as fait bravo à toi!
@Ben-ji1nr
@Ben-ji1nr 4 жыл бұрын
can you make a video on melee interactions in vr?
@simo2555
@simo2555 4 жыл бұрын
Got yourself a subscriber! Thank you so much sir!
@shadow3464of
@shadow3464of 4 жыл бұрын
I LOVE YOUR ACCENT AND YOU SHOULD TO. APRECIATE YOURSELF!!!
@TB3hnz
@TB3hnz 2 жыл бұрын
The methods OnSelectEnter and OnSelectExit have been deprecated. What do I replace them with?
@TB3hnz
@TB3hnz 2 жыл бұрын
Figured it out! Functions I used were OnSelectEntered(SelectEnterEventArgs args) and OnSelectExited(SelectEnterEventArgs args). As for the args parameter, I was able to access the interactor as "args.interactorObject" but I had to write it out as "Climber.climbingHand = args.interactorObject.transform.GetComponent();" to get the XRController and "args.interactorObject.transform.name" to get the name of the interactors transform. Thanks Valem!
@mickyr171
@mickyr171 4 жыл бұрын
Be honest here mate, always hated the french accent, no matter who spoke it, but damn ive learnt alot from you, love your accent now :D
@Diablokiller999
@Diablokiller999 3 жыл бұрын
This is great! Now I only have to think about how to let the player end the climb by standing on the wall afterwards. Maybe a ledge-interactable that adds a specific value to the position of the player?
@syntax_3rr0r
@syntax_3rr0r 3 жыл бұрын
Just what I was looking for!
@paulbunyangonewild7596
@paulbunyangonewild7596 2 жыл бұрын
😢😢😢😢😭 I JUST GOT IT WORKING, IVE ALWAYS DREAMED OF HAVING VR CLIMBING IN MY PROJECTS EVER SINCE I FIRST TOOK HOLD OF THAT LADDER IN VADER IMMORTAL (Playstation vr, as far as I can recall right now, didnt really have any games that had climbing, at least not with your beef mitts anyways, not any of the ones I had anyways) AND NOW I CAN!!! (With the added benefit of being able to tell which hand an object is in
@Strangertoyourlife
@Strangertoyourlife 3 жыл бұрын
If you want gravity when you let go, you will have to follow Part 4: Continuous Movement, or attach a rigidbody (But would recommend part 4)
@Updog97
@Updog97 4 жыл бұрын
Great videos Valem! I've been following along and trying to learn how to make my own VR game.
@ValemVR
@ValemVR 4 жыл бұрын
Thanks for watching Bera. I hope your vr journey will go a long way! :D
@Kingstantin
@Kingstantin Жыл бұрын
By now it seems that the method name "OnSelectEnter" has been changed to "OnSelectEntered" in recent versions of Unity. The argument of the method has also changed from "XRBaseInteractor interactor" to "SelectEnterEventArgs args". What should I do?
@Jaime-um4ni
@Jaime-um4ni 4 жыл бұрын
Another great tuto, thanks ! Very clear! Just one thing, are we going to see how handle collision between hand and environment ? I tried multipled ways with the current vr rig but still have my hands go through the environment. Thanks again for work !
@MickeyGMusic
@MickeyGMusic 3 жыл бұрын
This is really awesome, does it also work in combination with your multiplayer VR tutorials?
@CosmicComputer
@CosmicComputer 4 жыл бұрын
Awesome! Thanks Valem!
@thebutterappletutorials6553
@thebutterappletutorials6553 4 жыл бұрын
Any chance for 2 handed weapons/objects? Or reloading mechanics and stuff
@Dodger5163
@Dodger5163 3 жыл бұрын
Hi @valem, been watching your tuts for a while and they have really helped me👌. Question, how to change inputdevices.....xrcontroller.controllerNode to work with actionbased input? Thanks a bunch...
@MrRansuil
@MrRansuil 3 жыл бұрын
Yeah, I have the same question. I made the controllers ActionBasedControllers and now I cannot use their velocity. Ended up using something ugly like this: if (climbingHand.name == "LeftHand Controller") { InputDevices.GetDeviceAtXRNode(XRNode.LeftHand).TryGetFeatureValue(CommonUsages.deviceVelocity, out velocity); } else if (climbingHand.name == "RightHand Controller") { InputDevices.GetDeviceAtXRNode(XRNode.RightHand).TryGetFeatureValue(CommonUsages.deviceVelocity, out velocity); }
@MrRansuil
@MrRansuil 3 жыл бұрын
@Valem.. help?
@miserablepile
@miserablepile 3 жыл бұрын
Sorry this is late, For action based input - Add velocity actions to your action mapping. Bind to the openXR velocity path for your controllers (oculusTouch/index/etc). Reference that action in some script (I put mine in XRHandPresence) with a getter, then reference that script and getter in your climb scripts!
@Kingstantin
@Kingstantin Жыл бұрын
@@miserablepile hmm, I'm desperately trying to make this work. Do you might have a code you can share? I really suck at all this coding stuff. It#s quite new to me.
@rachelpham8462
@rachelpham8462 Жыл бұрын
How would i set the velocities/XRI default input actions if I am just using the XR simulated controllers?
@mileshaase3384
@mileshaase3384 4 жыл бұрын
Can you do a video on Multiplayer with VR?
@DavidGonzalez-oj1ic
@DavidGonzalez-oj1ic 4 жыл бұрын
Man, if you had Patreon I would support you.
@ReviloYaj
@ReviloYaj 3 жыл бұрын
So I am following along but when I try to grab the knobs to move, i dont move, my cononuous move provider is still functioning, but my triggers no longer work to teleport (even after letting go)
@EEGAR
@EEGAR 4 жыл бұрын
Can you make a tutorial on how to do walking in VR? I mean like with a joystick, not walking in real life
@klortak
@klortak 4 жыл бұрын
part 4 continuous movement I believe
@lorikaluni5708
@lorikaluni5708 4 жыл бұрын
how i fly a plane reakistic? with buttons/levers ? sooooo how buttons work??
@BjarkeHellden
@BjarkeHellden 3 жыл бұрын
I wish to be able to have my game objects as climb interactable and teleportation area at the same time. But following your implementation, it seems objects can only be one or the other. Any suggestions?
@kdclistenys4773
@kdclistenys4773 4 жыл бұрын
Hello! I won an Oculus Go and started watching his videos to develop applications for him. Congratulations on the content, I'm learning a lot. But I would like some help to create a function of Z-distance control by touchpad using the XR Interaction Toolkit. Do you know how I should do it? My problem is in not being able to disable the function of bringing the object close to the control, as this prevents me from moving it away on the Z axis, since there would be a command telling the object to go "forward" and another "backward" simultaneously.
@JackDontLie
@JackDontLie 4 жыл бұрын
SO GOOOD
@SupremeKaiZamasu
@SupremeKaiZamasu 4 жыл бұрын
In the next video I think that you should show us how to make a manual reload Sistum for guns
@__Rizzler__
@__Rizzler__ 3 жыл бұрын
U deserve 8million subscribers
@Db-bu9ec
@Db-bu9ec 4 жыл бұрын
@Valem I want to do this with the OVRPlayerController, Had a lot of problems with XR Toolkit. Problem is I can't seem to find the right override for the OVRgrabble to intercept the call. To be honest I don't know if that is even the right idea. Any thoughts?
@josephhuaman1424
@josephhuaman1424 4 жыл бұрын
Excellent video, what virtual reality viewer do you recommend buying compatible with unity? and what version of unity do I have to use to avoid problems, please help me with that.
@blissofkundalini
@blissofkundalini 3 жыл бұрын
Love it thank you!
@corvus3835
@corvus3835 4 жыл бұрын
Can you make a video on how to setup multiplayer? Would be really useful.
@MickeyGMusic
@MickeyGMusic 3 жыл бұрын
i want to know this too
@Olibe-1
@Olibe-1 3 жыл бұрын
Hi Valem, i think your serie is excellent. One simple but needed thing is a simple push button. (with as less code as possible) Could you make one ? tx.
@ellacouch8723
@ellacouch8723 4 жыл бұрын
Can you pls make a video explaining how to make some different locks? I'm working on an escape room and I just cant figure it out
@Diablokiller999
@Diablokiller999 3 жыл бұрын
Weird, still grabbing the knobs despite setting them to kinematic. Any idea how to solve this?
@theunknownvr3002
@theunknownvr3002 4 жыл бұрын
on the 2nd or 3rd video i got stuck bc the code wouldnt autimatically go in also the hands are for somereason strapped to my head plz help
@MuscleDoraemon
@MuscleDoraemon 2 жыл бұрын
Thank you for your video. It is helpful. I am coding newbie, so I do not understand why transform.rotation * -velocity * Time.fixedDeltaTime can provide correct vector. I use debug.log to check, the value of transform.rotation * -velocity * Time.fixedDeltaTime always is 0.0, 0.0, 0.0. Thus, I do not know why it works. Can anyone answer this question?
@smukkegreen
@smukkegreen 4 жыл бұрын
Love your videoes Valem. And your accent too 👍 Do you or anybody else, know why my controller configurations are forgotton when i build the game? Even in build x86 64, the controls go back to default where i turn with joysticks and teleport with joysticks press forward. In the editor all works great 😃
@DAX_PL
@DAX_PL 4 жыл бұрын
Great video man! Can you make tutorial about two-handed weapons?
@dmit_evdokimov
@dmit_evdokimov 4 жыл бұрын
Hello! ContinuousMovement underlined by a red line. Valem, can you help me?
@jacobfoster9358
@jacobfoster9358 4 жыл бұрын
can the next video be about 2 handed grabbing please?
@elitefusionz02
@elitefusionz02 Жыл бұрын
This is the third time i commented. I'm not sure if its getting deleted or what. One of the lines of code says it been deprecated. Do you have any fixes for it?
@bovineox1111
@bovineox1111 2 жыл бұрын
These tutorials are great but I'd find a better way then creating tight coupling - making climbingHand static, it is tempting mind :D
@kaiweber1178
@kaiweber1178 3 жыл бұрын
In the script it gives me this error codes: CS0115, again CS0115, CS0117 and again CS0117 pls i want help
@llIIllIlIIllX_XIillIIllIIllIll
@llIIllIlIIllX_XIillIIllIIllIll 3 жыл бұрын
hey , is there is any tutorial for SteamVR climbing ?
@Thomasssson
@Thomasssson 4 жыл бұрын
Quel aide incroyable
@Thomasssson
@Thomasssson 4 жыл бұрын
Quelle*
@lucutes2936
@lucutes2936 4 ай бұрын
thx
@elsyndur4415
@elsyndur4415 3 жыл бұрын
I made a ladder instead, but how do I get off of it once I'm at the top, without falling all the way back down?
@Gasparmr6
@Gasparmr6 3 жыл бұрын
I am trying to do exactly the same. Did you achieve it?
@elsyndur4415
@elsyndur4415 3 жыл бұрын
@@Gasparmr6 Yeah, I made two invisible cubes set to "is trigger", put one above the other near the top of the ladder, tagged the bottom one "Ladder End" and the top one "Ladder End 2", and made the bottom one raise me up into the top one which moves me forward onto the platform. There might be a better way, but this was all I could think of. If you're interested, here is the script which I put on the character: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; using UnityEngine.XR.Interaction.Toolkit; public class Ladder : MonoBehaviour { public float speed = 1; ActionBasedContinuousMoveProvider mover; bool moveUp = false; bool moveForward = false; CharacterController cc; // Start is called before the first frame update void Start() { mover = GetComponent(); cc = GetComponent(); } // Update is called once per frame void FixedUpdate() { if (moveUp == true) { mover.useGravity = false; cc.Move(transform.up * speed * Time.deltaTime); } if (moveForward == true) { moveUp = false; mover.useGravity = true; cc.Move(transform.forward * speed * Time.deltaTime); } } private void OnTriggerEnter(Collider other) { if (other.tag == "Ladder End") { moveUp = true; } if (other.tag == "Ladder End 2") { moveForward = true; } } private void OnTriggerExit(Collider other) { if (other.tag == "Ladder End 2") { moveForward = false; } } }
@Foxtrop13
@Foxtrop13 4 жыл бұрын
you are the best
@dumbfoxmedia
@dumbfoxmedia 3 жыл бұрын
Bless thee
@ellie-g9o
@ellie-g9o 3 жыл бұрын
For those who don't want to type it all out: === CLIMBER.CS === using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; using UnityEngine.XR.Interaction.Toolkit; public class Climber : MonoBehaviour { private CharacterController character; public static XRController climbingHand; private ContinuousMovement continuousMovement; void Start() { character = GetComponent(); continuousMovement = GetComponent(); } void FixedUpdate() { if(climbingHand) { continuousMovement.enabled = false; Climb(); } else { continuousMovement.enabled = true; } } void Climb() { InputDevices.GetDeviceAtXRNode(climbingHand.controllerNode).TryGetFeatureValue(CommonUsages.deviceVelocity, out Vector3 velocity); character.Move(transform.rotation * -velocity * Time.fixedDeltaTime); } } === CLIMBINTERACTABLE.CS == using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR.Interaction.Toolkit; public class ClimbInteractable : XRBaseInteractable { protected override void OnSelectEntered(XRBaseInteractor interactor) { base.OnSelectEntered(interactor); if(interactor is XRDirectInteractor) { Climber.climbingHand = interactor.GetComponent(); } } protected override void OnSelectExited(XRBaseInteractor interactor) { base.OnSelectExited(interactor); if(interactor is XRDirectInteractor) { if(Climber.climbingHand && Climber.climbingHand.name == interactor.name) { Climber.climbingHand = null; } } } } Hope this helps!
@Axelmov74
@Axelmov74 3 жыл бұрын
Ton accent français m'aide a comprendre parfaitement 😅
@oimeow7923
@oimeow7923 4 жыл бұрын
How do I do this in SteamVR?
@mrslake7096
@mrslake7096 3 жыл бұрын
Thx
@Red20
@Red20 4 жыл бұрын
tysm
@oimeow7923
@oimeow7923 4 жыл бұрын
I LOVE your accent
@redure967
@redure967 2 жыл бұрын
i love you accent (je suis français xD)
@RayAllenTaylor
@RayAllenTaylor 3 жыл бұрын
Thank you so much again for all these tuts!! you are great! I have a question about the setup of your Visual Studio. I guess its a noob question, but I have had that problem and question a few times in your previous tutorials in this series. How did you set it up, so all the highlighting and "help text" when you type something is there. Espezialy when you change the Monobehaviour: You are able to select something else,.. thats not true for me. And the script that you have done in another tut, and in this one again, dont seem to work for me :-(
@jonathansmith2115
@jonathansmith2115 3 жыл бұрын
Just add Visual Studio install folder into Unity settings and Intellisense work - I had same problem.
@RayAllenTaylor
@RayAllenTaylor 3 жыл бұрын
@@jonathansmith2115 Thank you so much, will try that right away. :-)
@pizzaguy6099
@pizzaguy6099 4 жыл бұрын
how do i cut something
@liammyt
@liammyt 4 жыл бұрын
epic
@ValemVR
@ValemVR 4 жыл бұрын
Epico
@pizzaguy6099
@pizzaguy6099 4 жыл бұрын
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; using UnityEngine.XR.Interaction.Toolkit; public class Climber : MonoBehaviour { private CharacterController charecter; public static XRController climbingHand; private ContinuousMovement continuousMovement; // Start is called before the first frame update void Start() { character = GetComponent(); continuousMovement = GetComponent(); } // Update is called once per frame void FixedUpdate() { if(climbingHand) { continuousMovement.enabled = false; Climb(); } else { continuousMovement.enabled = true; } } //climbing Computations void Climb() { InputDevices.GetDeviceAtXRNode(climbingHand.controllerNode).TryGetFeatureValue(CommonUsages.deviceVelocity, out Vector3 velocity); character.Move(-velocity * Time.fixedDeltaTime); } } does this look good, saying that there is no character in the context
@adhochero6619
@adhochero6619 4 жыл бұрын
probably because you spelled character wrong: "private CharacterController charecter"
@BlueVoIt
@BlueVoIt 4 жыл бұрын
All youtubers make a VR game. I have to do it but I’m not rich😑
@meeperhere
@meeperhere 3 жыл бұрын
Yeah Its Me Again
Introduction to VR in Unity - PART 10 : TWO HAND GRAB
23:14
How to Make a VR Keyboard in Unity - Poke and Ray Interaction
26:22
Valem Tutorials
Рет қаралды 20 М.
小丑在游泳池做什么#short #angel #clown
00:13
Super Beauty team
Рет қаралды 36 МЛН
Minecraft Creeper Family is back! #minecraft #funny #memes
00:26
How to Setup VR Hands for the Best Experience
23:32
Justin P Barnett
Рет қаралды 33 М.
They Dared Me To Make A Game...
12:08
Daniel Krafft
Рет қаралды 1,1 МЛН
3 Tips to Instantly Improve Climbing In Your VR Game
5:29
Donion Tech
Рет қаралды 8 М.
Introduction to VR in Unity - PART 1 : VR SETUP
20:36
Valem
Рет қаралды 851 М.
The biggest lie in video games
15:18
AIA
Рет қаралды 1,9 МЛН
How to Make Physics Hands in VR - PART 1 - Unity VR Tutorial
13:10
Valem Tutorials
Рет қаралды 85 М.
How To Make a Quest 3 Mixed Reality Game - Unity Tutorial
13:08
Valem Tutorials
Рет қаралды 118 М.
I Made the Same Game in 8 Engines
12:34
Emeral
Рет қаралды 4,1 МЛН
I Paid Fiverr Game Developers to Make the Same Game
10:25
BadGameDev
Рет қаралды 690 М.
2023 Unity VR Basics - Grabbing Objects
11:58
Fist Full of Shrimp
Рет қаралды 24 М.
小丑在游泳池做什么#short #angel #clown
00:13
Super Beauty team
Рет қаралды 36 МЛН