#udon-general
59 messages · Page 4 of 1
wait do i need to give the script to the world as well or just the pickup?
just the pickup
yeah i have just the pickup
attached to the script
okay i put the pickup in the world and the pickup didnt change size
if you press play in the editor, does it change size? Or do you get an error in the console
i got 2 warnings
errors
so does it scale anything?
no
so did y'all find a solution
I don't see any reason why it wouldn't work
I've never personally used Playmaker before, is someone able to vouch one way or the other if they like they layout/setup of Udon or Playmaker better?
Is there any plans to allow the manipulation of post processing using UDON?
Not yet, but requested
@tidal lava you should be able to control the weight using an animator, same as before
Well ye but I dont wanna do it that way anymore
in fact you get direct access to float params
animator poopie
who cares, it's literally one file with an animation track
it's not like you have to make that for each volume. just stick it on the same game object. use normalized time.
and then in udon it's literally just set float parameter
sometimes animators are the right solution still. they do have uses
I mean, that beats doing it the old way, but just having it implemented into UDON would be good for some other uses and would be better
How do I grab trigger input from a vr controller in Udon? Using Input.GetAxisRaw?
https://docs.google.com/spreadsheets/d/1_iF0NjJniTnQn-knCjb5nLh6rlLfW_QKM19wtSW_S9w/edit?usp=sharing
VR controller summary
This page is a combination of the other pages. These
inputs are verified to work on every known controller, and
in cases where they don't an alternative is provided.,Use this world to test:
https://vrchat.com/home/world/wrld_f8d5f7e4-185c-4b82-8ecb-8a...
inputs with a range of 0 to 1 are input.getaxisraw. inputs with a range of false to true are input.getbutton
thank you!
Has anyone had issues with UDON behaviours not initialising ingame?. I have an behaviour that logs to console on Start (as a test) but that log is not present ingame (even with --enable-debug-gui --enable-sdk-log-levels arguments)
Last time I checked UdonBehaviour would only work if its on the root level, so if it was a child of even an empty GameObject it wouldnt work lol.
I thought that had been fixed, but try doing that...
It is the child of an empty gameobject, so let me try that
Yes that is the issue, after moving the object to root I now see the log message
Is there an existing canny for that?
Couldn't find one, so I've made a canny https://vrchat.canny.io/vrchat-udon-closed-alpha-bugs/p/906-behaviours-on-gameobjects-that-are-children-of-other-gameobjects-fail-to-ini
I told TCL about that but he never responded to that particular problem, Im gonna hit him up again tomorrow I guess. This is a pretty game breaking problem, for a release candidate lol
so what is related to what I asked ?
Currently there is a problem where UdonBehaviour doesnt properly initialise ingame, if it is not on the Top-Level.
That is probably why almost none of the old Udon worlds work properly right now.
mmh
That was also an issue in 904, although I only found it a couple hours before 906 was released.
Its been a problem for a while
Kinda shocked that it hasnt been fixed yet
First time I've encountered that problem was 03/02
It's a scripting language to use in worlds, this post has more information about it https://ask.vrchat.com/t/getting-started-with-udon/80
Please read this post entirely. We know it is a lot, but there’s a lot going on! Most basic questions are answered in this post. Hello all! If you’re reading this, welcome to VRChat Udon! We’ve been working on this for quite a while, and are super excited about getting you in...
Does anyone have a basic write up on making a "Button" (anything you can interact with) set to toggle (Enable/Disable) another object?
I'm just having issues wrapping my head around the logic of Udon here
Make a udon script with the onInteract event, add your logic there, Then make a button and in the onClick button event add your udon object and in the dropdown choose udon->oninteract. Dont forget to add a uishape to your canvas so you get raycasts
@crystal geyser
or add a cube with a udon behaviour and add an interact event so when you click it something happens
Someone knows if the Get Tracking Data node or the Tracking Data Get Rotation is fully working? Because I'm trying to make an object follow the head of the player, but for some reason it only rotate on the Y axis, the tilt of the head and looking up and down doesn't work
it should be working, are you maybe using playerapi get rotation instead of tracking data get rotation? Because that would give you the base rotation not the head
Last time I checked (yesterday) it was working perfectly yes. (For head rotation and position)
Yup, it's working if I put that node alone, it's probably something that doesn't work in my script then 😛
Is a Texture2D variable not available in Udon node?
@dim shard No currently Udon gives no access to any Textures. However you can still get a reference to a Texture, via Materials and use UI Events to do certain things with Textures.
So this'll probably be a stretch but I'm wanting to make a Tardis (for those of you that know what Doctor Who is) world with udon and I'm wondering if it would be possible to actually have the bigger on the inside effect and actually walk into the Tardis and instantly be teleported inside?
omg...
OK, thank you!
@humble jacinth I dont exactly know how the Tardis works, but you can fake non-euclidean space with portals to an extent. Im working on something like that right now, however that is definitely not trivial.
@humble jacinth how far into the tardis do you need to go? WIll the tardis move, or is it in a fixed location.
If the tardis is placed into fixed locations, you can make use of clever level design combined with clever use of depth buffer and/or stencils, to create the tardis effect without needing portals
basically you need to restrict the player so there is no overlap between the areas you can walk within the tardis and areas you walk outside
For example, The 11th and 12 doctor tardises were multiple stories tall, and this is perfect, because it means you can have the tardis on ground level, and you can present the interior of the tardis, but have the player walk down stairs, effectively putting them underground
At this point, it wouldn't be an udon question though. just a graphics / stencil thing
Yeah I didnt even consider that. You could ofcourse just use stencils. That would actually make it a lot easier.
it's just a question of what type of gameplay you are going for, and which tradeoffs you want. no solution possible within vrchat is perfect in every way. The solution I propose is merely a "cheap trick" and it's very restrictive but very easy to build.
Helpful Helper's portals would allow for way more flexible gameplay and usages of the tardis. The only downsides aside from implementation time, are audio / possible stutter of other players as they pass through the portal, and additional lag due to needing a camera.
Stencils and toggling collisions would probably be good enough
Well seeing as I like to do things the complicated way, I don't wanna use stencils cus there's a world on the current version of vrc that uses that system and if i stand outside the box and my friend is inside, i can see them just floating mid air if i look behind the box. So yea if possible i'd like to actually use a portal system to actually be teleported from the exterior into the interior.
Don't know if i'm allowed to post youtube links in this channel but this is essentially what i'm wanting to do https://www.youtube.com/watch?v=cuQao3hEKfs
Get all Udemy courses for only $10.99: http://bit.ly/BRACKEYSJAN
The link above is an exclusive limited $10 site wide deal that expires soon so... go nuts!
In this video we create a smooth portal effect in Unity!
● Download Shader: https://goo.gl/iKCk1r
● Project on GitHub:...
Udon doesn't expose what's necessary to make portals like this correct in VR at the moment afaik. You need to make sure the camera scale matches the main camera, which there's no function to do. Also at the moment cameras that don't have a target texture set are incorrectly being filtered so you can't act on them in Udon. Ironically you can do portals like this in SDK2 perfectly fine, it's just a pain
You're the one that made that camera test world that has the portal system correct? @serene moat
yes
if the camera test portals were what you were talking about with being able to see people behind the portal, you'll have the same exact issue if you were able to follow that tutorial in Udon
you have to make a specific effort to mask out the players behind the portal which isn't fun
Is there any chance you could help me get it working the way you have it in your world?
it's not usable in Udon worlds because it's using triggers and the combat system 🤷♂️
I might make a prefab of the SDK2 version at some point, but I'm busy with U# at the moment and it's a thing that'd take a few days to walk through setting up
If you made a prefab of that or some kind of thing to help set it up in the SDK2 version, that would be extremely helpful 😄
@humble jacinth These are my portals currently. They only work in Desktop due to the problems Merlin described as its really hard to get proper VR rendering.
That's amazing, even if it only works for desktop
This isnt very thoroughly tested at all tho, so there might be issues that I didnt come across yet. Also a technique that is commonly used in Portals is shadow cloning, however thats not possible with Avatars. I have an idea how you could solve that problem, but Im not too sure on the maths yet
Also seemless teleporting currently is janky. Because of bugs.
And then you have other problems like culling the avatar which is probably impossible, at least directly, so you have to use weird camera shenanigans as Merlin said...as I said, not trivial
Would be nice if i could atleast get my hands on something i can mess around with to see if i can get it working to an extent
I still think that you'd be better of using Stencils and Collision trickery. That is far more reliable, and probably easier to setup.
Maybe i'll just have to use the old wall divider trick, just have a room with the exterior, and on the outside of the room have the interior, just open the door and it give the bigger on the inside illusion
can GetPickupInHand and SetPickupInHand please be exposed to udon
Is there one-click solution for syncing rigidbodies with gravity? Or do we have to do it manually now
I'm sure this isn't an original question but, What exactly is Udon and what makes it (presumably) revolutionary for VR Chat as a whole ?
Its nearly complete access to scripting from scratch, rather than a limited set of premade scripts.
The premade scripts can go surprisingly far but they have limits. For example they can't access all the inputs from a player, they can only get the left joystick, menu buttons, and both joystick clicks. Udon can get all of it, both joysticks, both triggers, both grips.
someone just asked that question right above you
How to use VRCPlayerApi.TeleportTo?
It gives me this error.
Can't both.
But using get position xor get rotation is fine
Haven't personally checked it out, but this might help you out
https://sites.google.com/view/noodlebowlvrc/home
There is a udon teleport prefab you could look how it's set up
try getting the local player in start and save it to a variable
it works 4 me
in the transform get position try adding gameobject.getcomponent then type transform
and rotation
I'm a bit confusing in quaternion. (Let me take wiki for a bit.)
But I want to ask that If I want up/down to be constant, which one should I set to depend on player rotation?
that's not really an operation you can do with quaternions. You shouldn't manipulate individual parts of the quaternion
instead you can convert it to euler, clamp the X and Z axis, and then convert back to quaternion
but you don't really need to do that anyway because you can just do playerapi.getrotation directly instead of dealing with the head
Oh so you mean VRCPlayerAPI.getRotation() doesn't follow head vertical rotation?
it does not
🤦♂️
I want some ACTUAL language.
... I'm started to hate graph now, It gives me tons of bugs (like https://discordapp.com/channels/189511567539306508/657394772603830360/692997759363579974) the fix is ... delete it and redo it exactly the same, and it solved by nonsense.
How do you get stations to work in udon? I can't sit in any of them
@queen panther The UdonGraph for the stations are not defaultly added to the UdonBehavior on the VRCChair3 prefab. Place it inside and you should be good.
oh! thanks
What does "THIS" do?
Some nodes still have that when they don't need it. Used to be a lot more like that
MEGA 🤦
@fallen prawn this is like do stuff only after <this is done> 🤔 i think, like do something with this bool only after this bool has been received and not before, when it's not exist
It gives me error If I connect "process noddle (white one)" with that node.
It works normally if i don't connect it and act like boolean node.
then lol )
how to change interaction text on non pickup object?
debug mode on udonbehaviour
thank you)
After Standard assets component whitelist removes in SDK3.
How to make 3rd person camera?
I haven't tried Udon in a few months, have Video Screens been implemented yet?
nope
Dang, I want to implement a queueing/voting system for video players
You could already make part of that system now
I know at least one person that has everything ready for when it's added. So all they have to add is support for the video players
I have my algorithms in place already, based on data from years ago. I just need video screens to work with udon
Well, you're not alone on that one 🙂
Do you know if they will be implemented before Udon is officially released?
i think they are wanting to make sure 2018 gets out soon. then they will focus more on udon and other features.
👍
ya udon feels like a preview of whats being worked on and letting people try it out. not really production ready yet.
feels pretty close though; I just hope that security and stability are prioritized with the final release
With what's missing and bugs, I wouldn't say it's anywhere close
Nope, no info
is position sync without interpolation available? seems that "Synchronize Position" in udon component cause interpolation
How do you add custom animations to vrc stations?
Isn't Custom animation is right there on VRC Station?
i need help with login in i made an account on vrchat.com but idk how to connect it to my steam account
Isn't Custom animation is right there on VRC Station?
@fallen prawn It doesn't seem to work, I tried adding the animation override from SDK2/examples but no worky :c
@fallen prawn It doesn't seem to work, I tried adding the animation override from SDK2/examples but no worky :c
@scarlet lake IDK then, canny doesn't found too. If it's a bug, you can report.
Hello I installed the 2018.4.20f1 and i import vrcsdk-2020.03.28.10.18 and than the udon 2020.03.28.09.26 but when I try to local test or build and publish it opens the vrchat (in beta like it suppose to be)but it just puts me into my home map.
no red errors only those
hello everyone, would there be someone who could help me? I want to add music to a world, mix more than an hour and have a play list. it's possible? thank you ^^
I'm new to the beta and udon, i'm trying to get all my features of my world ready for the new version, anyone knows a replacement for the component "vrc custom renderer behaviour" ?
Or i should stick only to vrsdk 2?
Or i should stick only to vrsdk 2?
@fervent smelt You should, If just migration.
Reason
1.Sync video player node on VRCSDK3 is not exposed yet.
2.So we don't know when they'll do anything about video player on SDK3.
im not using vrc renderer behaviour for a video player, im using it for general GI purposes
hello everyone, would there be someone who could help me? I want to add music to a world, mix more than an hour and have a play list. it's possible? thank you ^^
@turbid badger
I have some ideas.
1.Use Audio Bank on SDK2
2.Use regular Audio Source, Use clip that you combined.
3.Use array of Audio Clip then set clip when a clip is end.
Hello I installed the 2018.4.20f1 and i import vrcsdk-2020.03.28.10.18 and than the udon 2020.03.28.09.26 but when I try to local test or build and publish it opens the vrchat (in beta like it suppose to be)but it just puts me into my home map.
@radiant panther
IDK. but according to my experience this can be the cause.
1.Compiler error. Look for it and try to find ways to solve it. (Try clear and build first to prevent confusion.)
2.Something missing in SDK, compiler error when importing SDK. Try solve the error then reinstall.
[Repost to organize the message]
I want to know that that actually is this.
Is this do what the text says? (I mean sync THIS variable VALUE to everyone in instance instead of personal value)
As far as I understand it Udon Ownership works similar to the Trigger ownership, where each UdonBehaviour has a master. If a variable is synced, the master tells each person what the current value is when it changed. However since Networking wasnt fully implemented last time I looked at it, Im not quite sure.
Also syncMode is probably about interpolation if I would have to guess, and might only apply to values that can be interpolated, or even just Transforms, not sure. Also no idea where the difference is between linear and smooth, since linear smoothing is a thing and it kinda implies that linear (interpolation?) is not smooth...
Networking in Udon seems very unpolished still imo
So if I'm trying to guess
If I am owner and change int value from 1 to 5 in 1 tick
none - 1 > 5
linear - 1>2>3>4>5
smooth - IDK maybe linear expo or log . :P
But at first ... send custom event works now 🤣.
SendCustomEvent always worked, do you mean SendCustomNetworkEvent?
Yes I mean that network one 🤦 sorry.
@fiery yoke
After I search is owner(gonna give a try).
What is difference between Networking one and PlayerAPI one?
Good question...Im gonna look into that
Is master also give me confusion about this two.
Well anything that has to do with "Networking" is usually instance management, but in case it has an Object argument that is probably networked objects.
Im not an expert on the Networking side...maybe someone with more experience in PUN can answer this better
The second post I would guess as Networking being the client-side, so if your particular client is master of the instance, while the VRCPlayerAPI accepts any PlayerApi (so also remote ones) and tells you if they are master or not.
Same probably goes for the Object situation then, it tells you if your client, or any PlayerApi is owner of an object. However Networking.IsOwner(PlayerAPI, GameObject) and VRCPlayerApi.IsOwner(GameObject) seem redundant.
And if my guess is true then GetLocalPlayerApi > PlayerAPI.IsMaster and Networking.IsMaster are equivalent
I hope they'll remove any duplication soon
BTW. Is player ID Static? or just change when Player join new instance.
Not sure, but I think thats the Universal player ID you get from VRChat so yours would be:
usr_5be2e415-54c9-410a-8f4a-51c149cef139
ohh wait its an int
Well in that case, no idea
I wish there was more/any documentation on this...and there probably is gonna be at some point. But until then its either guessing or testing.
Yeah thats an artifact of them generating some stuff
playerId is a variable, so they have a getter for that.
But they also have a method to get the variable directly so you end up with redundancy.
Yeah probably since playerId isnt private and therefore the generator somehow had access to it and made a getter.
Usually you would mark the variable as private and have a dedicated Get method, which is what they've also done.
Not sure if that is correct, but I dont think this was on purpose. But you can assume that they do the same. However its safer to use the actual GetPlayerId method, since the generated one, might be deleted.
Can't find the method to test player ID.
I tried both node on UIText, gives me nothing.
at System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) [0x0001e] in <e1319b7195c343e79b385cd3aa43f5dc>:0
at VRC.Udon.Compiler.Compilers.UdonGraphCompiler.CompileNode (VRC.Udon.Graph.UdonNodeData node, VRC.Udon.Compiler.Compilers.UdonGraphCompiler+CompilerState state, System.String returnName, System.Int32 otherIndex) [0x014bb] in C:\VRChatGit\VRChat-Udon\UdonVM\Udon\Compiler\Source\Compilers\UdonGraphCompiler.cs:840
at VRC.Udon.Compiler.Compilers.UdonGraphCompiler.CompileNode (VRC.Udon.Graph.UdonNodeData node, VRC.Udon.Compiler.Compilers.UdonGraphCompiler+CompilerState state, System.String returnName, System.Int32 otherIndex) [0x002fe] in```
Getting this when trying to open several of my older graphs...
Has anyone gotten it before? Not sure what is causing this...
Yes I think thats related to the reusing output noodles problem isnt it?
Oh no... All of this was in December, when that wasn't a problem, so it tries to reuse nodes as much as possible to reduce lag in the editor, as back then I only had a laptop...
Complete U# rewrite it is then 🙂
@fiery yoke Thanks for the help!
Yeah its definitely a problem that should be fixed before release .-.
@acoustic delta can you narrow down what exactly causes that problem and in which cases?
I can try, right now about 10 out of 25 graphs are reporting the error above, as well as KeyNotFoundException: The given key was not present in the dictionary. with no stack trace. I tried picking one of the graphs and fixing all cases where a node was used twice in that graph, but that didn't seem to fix it. Maybe simply copying the graph over to a new file would fix it, but I don't have much time right now so faster porting it to U#. Maybe will have time to further debug it tomorrow.
Hmm so for you its only old graphs that broke?
I got the problem when I created a completely new graph aswell, can you try that really quick, I dont have Udon open right now
Yes, only old ones, the ones from December are completely broken. Those from February works.
I can try, what do I need to do? Create a graph and have a node be reused?
I guess? Maybe its relevant if its a flow node or not
Alright Im gonna boot up Udon as well
I don't remember if that canny was fixed or not
Yeah I thought it was related to that, but this seems to be a different problem
When using udon, worlds still can be published as public? (Labs)
@fiery yoke It's the same
The canny I made "udon-graphs-breaks-if-reusing-nodes-other-than-getvariable" previously threw:
AssemblyException: Undefined data identifier 'UIDTOPROPERTYISMISSING'. Identifiers must be defined before use.
However now it throws:
at System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) [0x0001e] in <e1319b7195c343e79b385cd3aa43f5dc>:0
at VRC.Udon.Compiler.Compilers.UdonGraphCompiler.CompileNode (VRC.Udon.Graph.UdonNodeData node, VRC.Udon.Compiler.Compilers.UdonGraphCompiler+CompilerState state, System.String returnName, System.Int32 otherIndex) [0x014bb] in C:\VRChatGit\VRChat-Udon\UdonVM\Udon\Compiler\Source\Compilers\UdonGraphCompiler.cs:840
at VRC.Udon.Compiler.Compilers.UdonGraphCompiler.CompileNode (VRC.Udon.Graph.UdonNodeData node, VRC.Udon.Compiler.Compilers.UdonGraphCompiler+CompilerState state```
I replicated the graph in the image in that canny post.
Ahh I think I understand whats going on
Ohh wait
It still happens?
Like with a new graph...
Yeah I see.
This is bad
Yes, created a new graph just now, drew the following graph and it crashes.
@fiery yoke Doesn't seem like it, no. I will delete that note from the canny then.
Seems like a pretty bad problem for the Graph Compiler.
Is there any plans for VRCSDK3 to reimplement the combat system?
We don't know yet, but you can already create it yourself
to be fair, we can't ragdoll the player
but that's it
we could already do 80% of combat system with SDK2, now we can do 90% with SDK3
that last 10% being colliders matched to the bones
and one advantage is that the way SDK3 gives us bone positions, it won't break avatar joints
hello :3
How guaranteed is network event delivery?
At-most-once?
Does the emitter know when the event is received and redrives if it doesn't, or is the event dropped?
How guaranteed is network event delivery?
@west plover I don't know that it'll bufferOne or bufferAll.
[Repost]
What is this?
No Unity documentation also.
they will delete game objects, I recommend just using destroy, destroy immediate isn't really recommended aside from specific use cases
DestroyImmediate is mainly for destroying objects while in the editor.
Also not sure, but with Triggers you were supposed to use Reap instead of destroy, because of networking stuff, but not sure if thats still the case or if there even is such a method in Udon
Is Udon still considered alpha? The docs here say that: https://docs.vrchat.com/v2020.1.1/docs/getting-started-with-udon
But the beta announcements make it sound like VRCSDK2 is for maintaining older worlds and VRCSDK3 is what all new worlds should use?
What’s this Udon thing anyways? VRChat Udon is a programming language built completely in-house by the VRChat Development Team. It is designed to be secure, performant, and easy to use via the VRChat Udon Node Graph, a built-in visual programming interface that uses nodes and ...
Yes, Udon is still in alpha. For new worlds you can choose whatever you feel more comfortable using, though Udon obviously is the way forward and will receive tons of updates and neat things while SDK2 (Trigger/event system) is just going to be kept on life support.
The only reason you'd want to use SDK2 for a new world that I can think of is it's less intimidating to use for basic world logic.
Are there any resources for updating a world from SDK2 to Udon?
Are there any resources for updating a world from SDK2 to Udon?
@echo coral
Right now is no.
So, what does the actual process look like, just deleting all triggers on all objects and then putting new Udon logic in?
So, what does the actual process look like, just deleting all triggers on all objects and then putting new Udon logic in?
@echo coral
What do you mean actual process? Migration?
(after deleting the SDK)
Yes, migration
I don't have a ton of complex triggers in my world yet
I have been waiting on adding more logic until I can move to Udon
And I would like to get started with that
You have 2 choices.
1.Keep using triggers in 2018 it still supported but just no feature update.
2.DELETE all triggers (If you migrate from 2017 to 2018 without importing SDK2 then delete all triggers/event handler is still fine I think.) then start with Udon from scratch.
[Repost because of spam prevention]
How to define other non-children gameobject in prefab?
It's always reset to self while I'm building.
@fallen prawn Prefabs are serialized assets, they cannot reference anything outside of their own scope. So you cant.
@echo coral We do not (and will not) support "migration" from SDK2 to SDK3. Official recommendation is to start from meshes, textures, etc with zero components added.
@fiery yoke What happened If I instantiate the GameObject instead of prefab?
Does it Instantiate like text says?
Yeah should work. There were problems with instantiating Udon Behaviours in the past tho, dont know if that has been fixed
what is udon?
Read #udon-info
So, I've opened an Udon example but can't move my view left/right, just scroll up/down. Am I just blind and sleep deprived or is there a trick to it?
Ya click and drag around, like in the animator tab
left click + drag selects an area on my end
right click opens a menu with only one option to paste
Middle mouse button
omg thanks, new to all this(literally started yesterday and now the only thing I had to show for it is broken)
Yeah I finally got lipsink working on a basic avatar and I went to upload when I got the ping for the update lol
Usharp are available for current version?
Is there a documentation page available somewhere?
@grand temple So newest version of usharp is fine or i should download other version?
Newest yes
The only case where you should get an old version is unity itself. 2018.4.20. everything else from the sdk to plugins to compilers should be newest version
I keep getting:
Assets/Udon/Serialization/Formatters/UdonProgramFormatter.cs(25,35): error CS1644: Feature `out variable declaration' cannot be used because it is not part of the C# 4.0 language specification
@proper nexus no documentation for VRChat nodes no, but anything else is available in Unity documentation and C# documentation
@hoary ocean Go to Edit -> Project Settings -> Player find Scripting Runtime Version and Api Compatibility Level and set those to .NET 4
Not exactly sure why I can't get rid of this error. Any fix?
https://i.imgur.com/UlbBKHh.png
EDIT: Figured out the issue!
I put it in a converted project. my fault
Are there any tutorials? Videos? Google Docs, anything? ok nvm just looked on the ask vrchat link
How would I check if a value is between a certain range?
Does anyone know how to change world settings like disabling/enabling jump and setting the jump height with SDK now that player mods are gone?
hey so can I use udon without needing to opt into a beta client/sdk etc? it should just work now?
yep
sick
So if your shaders and stuff are already supported by Udon, there's nothing I need to update on my avatar? (When avatar uploading is enabled)
I'm trying to make a button to turn on a mirror but everytime I click on the button the cube disappears, and yes I did place the mirror object into the variable. What am I doing wrong?
You got to check the box in the SetActive node
If you want to toggle, you will also have to get the gameobjects current active state
then use unary it
Unary is a boolean invert, i.e. "active = !active" to toggle
yo quick question how would i get the playerid through ontriggerenter colllider output variable? i mean i can get the instance id but im not sure thats the same any ideas?
@wind turret apparently there's a playermods node of some kind in udon where you change it IIRC
Yeah I figured it out. You need the network local player node to feed into the playerapi.setjumpvelocity node or something like that.
@clear spruce you can only get the players instance id, but not the id itself. It's been requested on the canny I believe.
So how would i get the player from the trigger collision then to make a teleporter is that not a thing?
I got a guide for that on the ask vrchat forum. Not sure if that is the only/optimal way, but its one way
Ok same name on there helpfull
Or do you maybe have a link for me
I mean the only other way that i see is checking if it is a player and comparing the gameobject with the before logged players gameobject in a playerarray
So you want to make a trigger that collides with players but dont know how to? Look no further: Create a new layer and call it something like “OnlyCollideLocal” In your Project Settings under Physics, setup the collision matrix so that the layer only collides with “Pla...
Thx
This might be a lot easier with using the "OnControllerColliderHit" event, since only your gameobject should have a Controller Collider.
Would be cool if you could test this for me.
Just use a OnControllerColliderHit event and local player api.
I only found out about that node after I wrote the guide
Tbh i will tomorrow gonna sleep now to late for me to look more into this but thx for the help atleast sofar
I still really don't understand why the cube is disappearing rather than the mirror turning on
like it shouldn't be doing anything to the cube
@wraith berry Did you make sure to assign references? :P
Show graph!
it's just this, like it shouldn't really need anything else for it to just turn on
Quick question. Is Udon made also for non programmers or we need to learn 'programing' to even be able to use it? Ngl after looking at it a bit i can already tell Triggers are way better and self explanatory than this thingy
Hey I'm having a bit of an issue with udon. I have a vrchat initialize running which is correctly creating my objects. The only issue is that it doesn't seem to run any blocks after it, and I'm not sure how to fix this issue. If anyone knows how to, please tell me.
@desert pike it's meant for non-programmers to use, but at the moment it's a lot easier to understand what's going on if you've got programming knowledge. We've got some things planned that should help make things much easier for everyone!
@zealous aspen - you just need to connect the output flow (triangle) from Instantiate to GameObject SetActive
in Udon, only things that are connected via flow ever "happen"
Sorry, I accidentally removed that connection when I was removing something else. It still doesn't work though.
Ngl, but i feel bit disapointed by that
Even with it connected, it still does not activate the cloned gameobject
try pressing 'reload graph' and wait for it to compile.
No change
hm - let me make that same graph here. So you're instantiating a prefab that's inactive by default, and you want it to become active after Instantiation?
Yes
any particular reason why you'd need to do that? the object won't exist in the scene before being cloned anyways
@zealous aspen - yeah, I'm getting an error when I try to do that. May be a bug, I'll track it internally. Agree with @tame matrix though - in this case, could you just have the prefab Active in your library so it's good to go when it comes in?
I need to generate a lot of objects and modify their values. I can't think of any other way to do this.
I need to generate a lot of objects and modify their values. I can't think of any other way to do this.
FYI VRCInstantiate doesn't work across the network right now in SDK3 so you might not get very far at the moment anyway. Is it possible to do this at edit-time instead? That's what I've done for some projects - write an editor script to generate the objects before I compile, and then they're already in the scene for all players.
But at the moment, I'm seeing an issue with grabbing the output Gameobject from VRChat Instantiate - I get an error if I even try to just Debug.Log the GameObject's name, so it may be a bug. If so, I'll want to get that fixed soon!
I don't need the objects to be synced. They'll generate the same way across everyone on the same instance with a few starting values. I just need to generate a lot of objects, which will have dynamic values.
Right - I'm saying that I don't know that VRCInstantiate works for non-master users at the moment. I recommend you think on whether it's possible to generate them in the editor for now, since you can write a script to make them all and modify / randomize their values. I've gotta run, I wish you good luck!
Yeah not being able to get a reference to an instantiated GameObject seems pretty bad, what exception does it even cause?
@fiery yoke I'm getting a key not found error in the editor. Agree that Gameobject instantiation working well is high priority IMO.
A Key not found? That sounds supiciously like https://vrchat.canny.io/vrchat-udon-closed-alpha-bugs/p/udon-graphs-breaks-if-reusing-nodes-other-than-getvariable
Might be related?
Might be! Not using the clone anywhere else but it might be worth making it a temp variable and getting that variable as a workaround.
Making dinner now but I'll try it later tonight.
I had to pull that variable trick to get my AirBlaster world's for loops working.
Well if it fails at a simple Debug already, then it probably doesnt have anything to do with reusing the output. For Debugging you could do a reflection on the Dictionary, and see if theres anything in there at all.
Dont even know which Dictionary this is referencing, is it from the Node?
Making some dinner, bbiab
I'm soo lost. Facepalm
so I cant find the player mods component, guess we have to use udon for jumping? watched through the basic tutorials, am kinda lost tho, how do I implement jumping 🤔
also video 3 has been removed
Theres nodes for setting jump height, walk speed etc. Just plug in the LocalPlayer via Network.GetLocalPlayerApi or something like that on Start
😰 uff
can you give a tl:dr on the public variables video? cause its gone and i think im missing some info
oh wait, video 4 is called that now, but program variables doesnt exist
You can get and set public variables using a reference to the UdonBehaviour you want to set/get the variable on. Also you can edit public variables in the Editor. Besides that they are just variables. I dont know what else was in that video
Are there any work arounds on initializing objects? I'm dealing with 1000+ objects so theres no real way for me to manually do it.
Editor Scripts. As long as they dont need to be generated from runtime data.
Well, I have some dynamic data that's value will determine a lot of the properties of the objects, and it will be different across multiple objects. Additionally, I'm needing a way that can theoretically generate infinite objects, so it isn't very feasible for me to not generate the objects.
Ah yeah got the variable stuff figured out, was just confused cause when you start with a gameobject var it just says bool instead of public, some weird things still happening, cant figure out the jumping stuff ) did GetLocalPlayer -> Set Jump Impulse 10)
tried to spawn a small ball OnPlayerJoin
thats for the spawn
Maybe this might change in the future but since allot of people like myself have no real use for Udon, the SDK shouldn't force you to download it and instead just opt of out it. I choose not to download it but now the player wont play unless i have it installed
If you dont want to use Udon, use SDK2. SDK3 is specifically meant for Udon.
also adding OnInteract to an gameobject allows it to be clicked but the text says Use
any way to override that with sth else?
Yeah, you have to go into Debug Mode in the Inspector
I found Set Interaction Text but
Hey the "Public Variables" video is gone from this page https://ask.vrchat.com/t/spinning-cube-example-series/81
@zealous aspen could you be more specific with what you're trying to do? Instantiating thousands of objects is less than ideal, and won't work across the network for now anyway. Probably better to use a pooling method or at least make them ahead of time.
@jagged crow we've got a new replacement video on the way. For now, take a look through the Udon/Examples scenes in the Editor and the included Readme. There's lots of public variables being used in those Udon programs that should show you the way.
wait
youre telling me there example scenes ._. this makes things easier, me stupid
I know it wouldn't be very efficient, but like I said, I don't need any of it to work across a network.
is there someone who knows how the udon triggers work id like to ask few questions according to new world im creating
You're not going to get an answer if you don't ask a question
i though about if someone wanted to talk about it in private so i wouldnt spam the channel
well simply said i want to create working book
also how do i open the udon graph tab
😅
We’ve got a set of videos here for you to check out to get you started in Udon and with some basic concepts. Let’s meet the VRChat Udon version of Hello World-- the spinning cube! Video 1 - Introduction Video 2 - Input and Flow Video 3 - Public Variables Video 4 - Program ...
do this first
public variables is deleted
yeah they're working on another one
how does one set the vrchat world test client path
gives me this when i click build and test
so jumping works for desktop because the space button
but how do i make vr people jump
set jump impulse is not something you activate every time you want the player to jump
it's a setting that you change once at start
so get rid of all the update and get input stuff and just have on start > set jump impulse
but it didnt work before 🤔 i will try it, thanks!
i got it to work finally
tried to make cube turn when i interact with it but
what did i do wrong
- Why isRotating is string?
Hey, I'm wondering if there is any way for me to get the instance id with udon. I need some value that is unique across multiple instances but the same for all people in a single instance.
well for some reason in the video that component has "name" in it not string
"event name"
or something else
idk
@grand temple my man! jumping works, big happy
I mean variable isRotate is string and you return the variable to branch, which need boolean.
It'll return null or something else that mean nothing as boolean
oh wait idk why that is even there
so what do i need to repair here
turn the string to bool?
Create the node called Variable Boolean (Just type "boolean" you can't search with keyword "variable" now.)
Then get variable from that variable
If want to turn from string to boolean you can use drop down menu at the top of the node and find boolean.
yes.
you don't need to publish the variable btw.
still doesnt rotate thoi
should i use something else instead of Interact node or soemthing
Interract does (AFAIK) not work if you are pressing Play in the Unity editor.
I might have found something that may work. How would I use VRCSDKBaseNetworking?
there's a bunch of stuff in there, it's not just one thing
Interract does (AFAIK) not work if you are pressing Play in the Unity editor.
@acoustic delta
I forgot that.
@fallen shore Use OnMouseDown() on play mode
I need to get the networking object
Interract works only in-game for both Desktop and VR. OnMouseDown works in-game only Desktop players and in Unity, not for VR.
@acoustic delta W WHAT?! Work in desktop too 🤦
Although notice there is a overlap if you are a desktop player in-game. If you use both Interract & OnMouseDown then it will fire twice for desktop users.
OnMouseDown works in Unity, I've used it extensively.
no what i mean that somethings wrong with my nodes
bc the cube doesnt start rotating
it might not be compiling. Try to add a new public variable and see if it shows up in the inspector
@fallen prawn Yes, OnMouseDown works on Desktop in-game too. VR players will not be able to click it.
if it doesn't, you can force it to compile by duplicating the script, compiling it, deleting the old one, and replacing it on the object with the new one
ah that worked
If you want your script to work in all 3 modes, then you can use both OnMouseDown and Interract but make sure to check the player is in VR on the Interract node, that will fix so it doesn't fire twice yet still work for everyone.
Interract -> if (isPlayerInVR) -> MyCustomEvent
OnMouseDown -> MyCustomEvent
MyCustomEvent -> your code here...
There is a node to check if they are in VR or not.
What's a good convention for a world's "main" udon script, attach it to the VRCWorld object or give it its own empty one?
if it's something like set player mods, sure vrcworld is as good a place as any
@fallen shore Sorry 
@fallen shore Yes there are.
If you are beginner, you will get used to it ... or maybe you'll use language instead lol.
whats the node for that
Check that user is in VR or Desktop.
VRCSDK3->VRCSDKBaseVRCPlayerApi->IsUserInVR
Yes!
oh you found it
oh i actually did it
haha
Is there any way for me to get a time value that is the same for everyone?
@fallen shore This is if you want to make a button:
Inside Unity the Interract event will not fire. Inside Unity you need to use OnMouseDown.
In-game for Desktop both Interract and OnMouseDown works.
In-game for VR only Interract works, as VR doesn't count as a mouse.
So, lets say you have some custom code you want to run, and you have created a custom event called DoorToggle. So how do you wire that up? If you make a SendCustomEvent node on the Interract, it will not work in Unity. If you make a SendCustomEvent on OnMouseDown, it will not work for VR players. And if you make a SendCustomEvent for both Interract and OnMouseDown, then for Desktop players in-game the door will toggle twice, as desktop users activate both Interract and OnMouseDown. This "overlap" is the problem.
This is why you need to wire it up as in your picture above.
im one step closer to making working vr book .-.
why do nodes that output a bool not automatically branch?
seems like an unnecessary extra node
Nodes that output a bool are value nodes, and sometimes you don't want to "branch", sometimes you maybe want to do something with that value, such as storing it in a variable.
because there are plenty of reasons to use a bool without a branch
ahh yea I guess if you're storing it or passing it elsewhere
I have a timespan but I cant get miliseconds from that.
the joy of learning something new with other people
replace your custom function with something built in
just to make sure the logic is working properly
udon is amazing
same
hmm what you mean
I can strongly recommend checking out UdonSharp, or "U#.
in unity the click works
yeah I'm probably going to use udonpie or udonsharp but figure its worth learning it vanilla first
but ingame interacting doesnt work
thought id understand the basics first
hmm
I just discovered Udon# and it is so helpful
damn, i really should check it out
OH
do i have to drag the bool_
thought its just some side gimmick
I see what you did wrong
@fallen shore
you didn't take the output of the boolean
you took the arrow
which just goes to the next node afaik
uh where
Its almost identical to programming with unity normally
from the "is player in vr" block
U# is in a much more mature state than UdonPie, I have worked extensively with both. UdonPie has not been updated for over a month and many nodes will not work unless it is updated.
you want to take your noodle from the round node, not the arrow
that will let you pass that value to the next node
so you guys would vouch for u#
then ill check it out in a bit, im not a big fan of graphs and stuff
or wait, I think both yeah
Yes, support is amazing, and almost daily updated.
the arrow tells the program to move to the next node, the bubble passes the value
what are the names for those btw
already forgot most of the udon terminology lol
also lol rip anyone trying to program udon whose first language is read right-to-left
gg no re
The line showing where the program should move next is a "Flow" line, you can hear people say "Flow is not connected". The line passing the boolean value does not have a terminology AFAIK.
Not read everything, but is it not running?
wha
like do you get errors when you hit the play button in unity
Well, there you go
I get that error too. Probably unrelated
how can i use pickups and pickupuse? cant figure that one out
How do you have two flow nodes going in the same SendCustomEvent node? Have I missed when that was implemented or is it a bug?
It was implemented a few updates ago yeah
Ah, thanks
i wonder whats the issue
I'd say make a much simpler script just to get something to happen when you interact in vr
to help find the issue
@long sentinel add a VRCPickup to an item, then you can use the OnPickup event nodes
thats what i did
i make cube rotate when i interact with it in vr
it should be simple
But it's not doing anything right?
@fallen shore make sure the item with which you want to interact is on the Interact layer
and for some reason the only part that doesnt work is the vr part
Is the object a root object @fallen shore ?
interact layer?
Or is it a child object?
i just added cube to the scene
I see the problem
thats all i know
and thn made the nodes in it
@long sentinel not quite, the actual VRC Pickup component
The gameobject you have the UdonBehaviour on, is that root or child?
root
@fallen shore In your IsUserInVR you need to feed a Player into the "Instance"
its not under anything
oh?
@long sentinel it will add a Rigidbody and set the layer to Pickup
thanks i overlooked that completly
@long sentinel yeah, I can see that it's a bit confusing. There are still some key components like Stations and Pickups
so the interaction is local ?
yep!
thanks man!
but only when you Build + Test
Just caught wind of U#. I'm already fairly familiar with C#, but have no clue how to even use U# with VRChat. For instance, accessing the VRC player API in code. I've zero interest in the node graph. Any documentation out there on this or am I on my own?
@long sentinel it needs an Avatar to actually fire 'Interact'.
check out the unofficial api docu on github
how does one even make local and public interactions?
or i mean not that
i mean if i interact to make it spin only for me and not for everyone
and counterwise
@ionic pike There is a U# discord, also GitHub contains lots of demos.
@fallen shore anything you do will just be for you by default. You have to specifically turn on Sync to make it work for other people.
@floral dove just throwing this out there, but instantiating objects onplayerjoin
@acoustic delta I see the demos but none of them include accessing VRChat API stuff. That's what I need to know. 😛
this should work by my logic
does the gameobject need any component?
like an networkidentiy or sth
@long sentinel it should work! But I think there's a bug where you can't get the clone out of VRC Instantiate right now.
Just found it troubleshooting with someone else tonight
@ionic pike Here's the correct link https://github.com/Merlin-san/UdonSharp/tree/master/Assets/UdonSharp/Tests
Also - VRCInstantiate doesn't work across the network yet so it's not super useful
exactly 😄
im actually gonna flip
hopefully they add stuff often/continuously
it still doesnt do anything
@long sentinel it is planned for sure...
how something this simple can fail
Can you screenshot your graph please?
its the same but with the networking get local player
the hwat
Debug log node
there are some examples of using PlayerApi in the examples folder for U# programs https://github.com/Merlin-san/UdonSharp/tree/master/Assets/UdonSharp/Examples/Utilities
then look in the output log
If you're trying to see if an event is firing, fire it into a Debug Log node
between stuff
but how can i see it since its in vr thing
Or yeah, in-line somewhere. Or at the end? Not sure how to see the log in VR though.
You can write to a text field, that's what I do for a cheap in-game log
huh?
the String.Format node helps greatly with doing that.
my brain
@fallen shore take a look at the scene Assets/Udon/Examples/SyncUI
You need to pipe something to print into the DebugLog
Right now you are jus doing Debug.Log()
This is on the ButtonMaster object in the SyncUI scene. Shows you how to write to a text field at runtime so you can see Debug-type messages when you can't have your console up.
where does that text appear
Debug Log appears in the Console and log file
momo sorry to annoy you one last time, but picking up and using items
i can pick it up, but can i thought i can THEN use it to eat it basically
is that possible?
or only use OR grab
haha sure! You can grab and then use.
but how
my brain hurts so much rn
people are testing it right now, they cant :c
You can find the log files at C:\Users\<USER>\AppData\LocalLow\VRChat. AppData is hidden by default, you can type %appdata% into file explorer which will put you into AppData\Roaming, go up one folder and then into LocalLow.
i wanna curl up in my bead and cry myself to sleep bc i dont understand whats going on anymore
^
@long sentinel take a look at the MultiExample scene in Assets/Udon/Examples, specifically at the PickupCube. This has an Udon Graph on it called PickupAndUse that works ingame!
oh rip
alright, thanks ^^
x3
and i wanna smash my everything
there is no zoom in the graph tho right
i just want this simple thing to work
@fallen shore I highly recommend you go through all the examples that come with Udon. The Readme in Assets/Udon/Examples explains all the demo scenes.
i mean if you guys cant figure it out how could i?
@long sentinel sorry, no zoom. But we have some other things planned that will make zoom much less necessary.
are global custom events a thing?
like can I send an event from one object to another object
or would I have to change a flag in object a and have object b constantly checking for that flag
@jagged crow sure thing - not global though, it's 1-to-1. Custom Events.
Yes, you can pass a UdonBehaviour into the SendCustomEvent node. That will trigger a custom event in an another script.
this is the whole scene and nodes i have rn
though CustomEvents don't yet support passing parameters, so you can only fire events
wtb params
Make a UdonBehaviour public variable in script A, then in inspector assign that variable script B. If you then pipe that node into SendCustom event script A will execute the custom event in script B.
@fallen shore that Cube needs to be on the Interact layer
Again, is there any way for me to get the instance id or some unique number to that instance?
how did i do that
top right of the inspector pane
where it says layer default
I totally forgot about layers 🤦♂️
yee
yes, Interactive
also jus for the future reference if i wanted it to be pickable with interaction does it go to pickup layer or interaction?
I have never had to change the layer. I have default for everything.
@fallen shore good q! Pickup layer should do it. Just add a VRC Pickup and the script will set that up for you, though.
there is always that chance
it doesnt spin
@acoustic delta oh really? I've been learning Udon as fast as I can and I could have sworn that changing the layer has been the thing to fix the issue for me more than once but...it could always be something else.
Space, you can try after setting isRotating, print it out to see.
debugs debugs debugs log everywhere helps
um
but the thing is thats not failing
the interaction is
mouse click in unity works
@floral dove Depends, I have not worked with Pickups so maybe it is neccesary for Pickups, but it should not be neccesary for buttons.
@fallen shore that Debug.Log could could be unhappy about the blank object it's got
Pipe a string into it and see if it gets printed in VR
make a string const that says 'Interacted!' and pipe that into the 'object' on the Debug.Log
bc i have no idea
Make a string node
yep, gimme a sec
Constant String with a value like "Hello world" and pipe/flow it into the Debug.Log node
There is, under System > String > Constant
ALWS0WrbMBSGXyU715aRYsmWDLlqehE2tkHX3IxgJPs4uHOkYcvdQpon28Ueaa8wuU462uyiN0UgEDpH+r+P8+fX7wPc63ZAyL8eoB7a9qPehQPc2sbvr+22sbhEM2zjovjgtkVxs+897j6ZOyz9+bR2TQURDGHPQZmkEiI1RLG6JlyViigpKRG1rqjQmCZSheLvrm984yzkB/gJeZLGNII95ITNaUyPEVhX4e1q2YdgoDPMMpoyknDNCEcqiRSqJEwJNEYg1sw8UNhEULfux6lrM72xHun6R7xhZJqiryfmAzS299qWuFpCPn7b+66x29M1wHFzjJ55uXKh4cR981j7RP6alJfkZM7pmZ3LC/Q3gJrCx1P6aLbrS9e1jYlma+z6EGzBYzquaHY1tH7ocGFx8J1uo9nnwbRN+R73X9w3tAuTZVqUImUqGXHVw8p67HTpsXp3qe76Hq0vziX/tIVpUTqThPJgjAuWEMkSSphQdSI5N0Lx/2jL5k8Tk8xfansu7XUz+VLtJgD8BQ==
You can actually copy-paste that string above into your Udon window, it will come out like the screenshot
ok why is this not working am I a dummy
so now that i have that setup what next
can you screenshot your whole graph for me so I can see?
if @ me that is the whole graph
sorry Shaun that was at Space (darn no threading in discord)
haha yee np
ok cool @fallen shore - so do a Build and Test of that scene to see if that fixes Interact
because maybe the Debug.Log was choking on trying to log nothing
oh wait a second @fallen shore - I'm sorry, I see it now. I was so focused on the Interact event I didn't look downstream. You can't have two flows go into one flow like you're doing into the SendCustomEvent node sending DoRotate
the UI should stop you from doing it but it doesn't yet.
i got told to set 2 differents for desktop and vr
so you'll want to duplicate that event sender and do it separately
ohh
that's not obvious at all, plenty of node languages let you do it
Yep, my Blueprint habits are killing me right now!
imagine then learnin how to keep your nodes not crossed and clean
thats something im gonna have alot trouble with
are there any examples of how to get jumping to work
I seem to be missing something and I can't figure out what
@fallen shore it helps to break down your behaviours into smaller pieces sometimes so your graphs don't get too big
Shaun, I've done it exactly as you have ant it seems to work.
@.@
Added an empty game object, added Udon, added
that's why I show how to use 3 different event senders to fire the same event receiver in the MultiExample
what object is your script in?
It's an empty object
I make one main empty object and load in the Scene description and basic setup Udon
i wonder what happens if i set the branch to false instead of true
wait
do i need to set instance?
no I think thats for sending the event to a different behavior
@bright nova no, if you don't set instance, it defaults to itself which is fine for Gameobject and Transform
ffffffff
@fallen shore copy-paste the program here so I can take a look. Just Select All (Ctrl-A) in the Udon graph then copy-paste.
pretty sure using objects you picked up doesnt work
AO1Z207kRhD9FeTnadTtviPxkIVNhDZ7ESzzkkWjvpTJZD02sj27S4Avy0M+Kb+QmiuzYwPOBhSUhEGofZ2uc06fqmr++O33q+STy6eQ7P10lWTTPH/jJniQDI8PTmNZHJSTSVkcFQ1UmQtQH81OvvwERXMMAcafoNodjU6giAfTuikn8yt44rJuYHLSVOPifHU0LMcxGSRT/LuXWAbOg5YksmiJCKkjNnMpEZwpKX2aOsHx5ouyHjfjskj2rpIvyR7hiu7SQXKJQ5Hi8GaQFGWE06PDGuef4BPJ2SDJ8vLz8tTZ4obhLMJ6HuK0GDeXb/0vEJrhIu6rZFzUjSsCHB0me7N31vOJLy8nyc3gWx5bRL27AGGwM6lDWeVjP9gZQlVjTPtil84+g52Dad5MK9gvYNpULh/svJv6fBxeweX78iMU+15rJ4NUzHIB1NjrWB6XjWsguTmbze1r1k4OX71wNbyB5nNZfcTvRoLOoRn9WAaXv8vdJVSj0e19OFqc/O5ivKaH0VTo1ETCbDBEaBqI00AJ4ES4D9JGbzvoMUyt6GGmRc/9zGxH8qJCaH9ezyimimdeO0JhNqNMBmKo5cQ5msqYchc06xIMXQuGs7QlGJoFRxnzxHIeiJDeEquZJFR5x0wabRblNd3S1ExmHgwi4RyBTGVEmJASa7QmMU0VcCqNkPPHHkF8d1O8SR2SfFSf1lAdFcPj1ZJ7UZY5uGINYp9wO0BUOl2BmBrTArGPWNog9iL0aRBcmNTc01xo1ugIJoHi8iIs4xLRQYi8RHSk1kHxlMdIfQc62tB70NmKuhcDDy2Np7XmXtJuw5CK9ULT7YX2vzMv4F9QceuzafA0eoEwC5Sc0oZY6yjJBPBoUVk2ZB1YSyXu8dltpBOacpFpYUlgkeFSc0CcQEZZSI1iLnUq8kdZav8IsCeY24auGjufw63T9Qm5DSyjZg0s71SxYZB5bh36lI5EgFL44qiI1zKLXOL6trFlds8cW60UBK5Qe2hIqELUo/doypkCCMJJpjz7xqXWkb6WVN2RonrNpUUcU2veUtFdF65/n4yaZSiPy833Lq/h+fncuJ4vR3zv35vbc8Xsuc7rKbgsyqLDVn/oslVHeSqBMZJJoYnw0hETcLFm4AErGMUFE135Sq4LSCMeSlf/CrNsJalNs8OyrLwYnRauunwD526G1FbFflcB3yf7dNVmt33ZfLhFQB9WnySn3VUlnV7EWapfRR00REtpJEE7jJobSUxUkfjU6izgx3Um8/kOwTKZt3L5VonEHM2iMUCkpxTrBSqIA5ESCSaaYIINEh6sy7da1l7vvL9lbXMFNkSrkCukDBsIbmdtE6dEM6wkuQxC0NButgL+gA9A8Fkxa200SgY7ncwyrWNA8Wj3RM1Wp4/0iaKrERWrNN/VYvwHbOR0FsLL4nxcwHsUW52V1QTdZFEaj0Ybl4cYZVnxVbuH88eSq6vd6yWNFhW3+3Bph6HPCy1pGLYyWHhT6rC3cR6Ip87g2zPpmZAgrHkiV/mmDLsB3u4SvcHO5smDsoLXZZzmcCsA2lcABZJ4ffUh+fIBvxsf+JBc4ojNR78uzt08Wo29KZPxBJYbgBHyxs2OR1+pYqPxR0VK5QnT1hDBLCOW+YxEn6lMI53Smy6/sqvk0s7tf23Lb3NWixz5GlEdXyCOXyXJpZq7pL0VUh8Ndu5l0Lt9pg9M1/RZbnjMwXlcH1P0riT+tnhdTms4LD/f1i/S+6gsVyQAS2dmkxLvIpoNh6iQJ3SfrvpF6nX9IuhDW2y9/rXQluLZzZ8=
oh god lol
Potato, I often test things by firing the 'start' node into them, just to make sure what I'm trying to trigger works. Not sure if you've confirmed that yet or not
nvm that doesnt owrk
!!!!!!!!!!!!!!
it works
the entire damn time there was a loose node sitting way off screen
somebody shoot me
Ha, yep. Little things like that make me crazy. What's worse is when you wreck your node graph trying to fix something, then find out it was something simple, but now it's broken 10 new ways.
hm - @fallen shore yeah, something's wrong with this graph currently. It's not compiling for me.
do you need to do anything special to enable voice?
@floral dove would you be able to somehow rework it abit
@fallen shore I'm giving it a shot!
i kinda still need it to be "that complicated" bc i have my goal to use it for in the end
this graph isn't too complicated
running a Build & Test now
ok - I've verified it works if I disconnect MouseDown for now and bypass the isUserInVR check. I'm now going to only fire it if it's false (since I'm testing it on Desktop), and leave MouseDown disconnected, since that would give us the firing-twice issue.
how do i launch test build in desktop btw
You can use a flag --no-vr
ah
ok, that didn't work, so our problem may be in the 'isUserInVRNode'. I'm going to add a World Space canvas and a UIText component so I can log the output of that call to the world.
hmm
ffffff I didnt even change anything in my behavior but I can hardly jump now
get like one inch off the ground lmao
hmm
aaand I just deleted the behavior and remade it exactly the same way and it works again
something's screwy here 
@fallen shore ok wait a sec, maybe this is a bit overengineered. Why do we need onMouseDown and OnInteract?
because this simplified graph works great:
AOVYy27bRhT9FWPWGmNenIcBb+KkhVEkLexYm9oQ5nHpsqVIg6TcqLK+LIt+Un+hQ1FSbZOO1cQCjBbigjMiyDPn3HPvnfnr858LdGvzGaCjnxconeX5BzuNA/TuFopmclo0UFnfoBGaZSFOU6att9xhqiHFgjKDjZUBE9AJU0wraWl8+KassyYrC3S0QJ/QEWZSHJIRmsdbysghWY5QUQa4OH1bxw9fjVCal7+vR8izhINVARtlPRYi8PgN5bEmxnmgzCqh0FX3hnGLffWO5WgA/8msbsrpFj0xxFiTWhwhs/hml2KrqcHECWEsJyIxyRB6KtfoB8Aj9Ai+JY641FFsvbJYBKWxTp3GXlFnFeXecdKDv0CzImvmP7pfwTfjTpAFyoq6sYWH07foqP1s3VRZcb3+G53P6wamh+erydHBtPZllWdudDCGqo7wjyPn7W90cDLLm1kFxwXMmsrmo4OfZi7P/A8w/1j+BsWxU8omPpHUcAFEm7tQnpWNbQAtH/N6Ds1kbKvMuhy2vO605B6vQm9YTWSf1REKigTwJsGWJxILLQU2lEtspLLcqABM6zvyiP5XTqwPCXCRJlgHreKahMAuxDVJnyojDA8qSVFL+b9H3dfq+yGtHBcGiAWsNE+wMIJgS6TE0b9GSSJ44GzAA0nC1mox8awH/hMi9CJ/BehNWeZgi8PJpLyZXBS2mn+Aa9syNZk8eOLRcMv/LlE9lIP0xi2M6R7/u4i6F6s8RdN5fCaHjqX3UZ/sJirygKbuiYeDB6N/snZIGPGBYkVIXJxzFhufxvzttJRSp0J6McAYp5uITdrq84gxmijCY53BjBGBBaGRMaUd5iHGt/MpsV7etUlrL6R9lcE3jlix87KOkKQv5EUL8F1xnRXwMZu2Wl7HfBIgb2w7fkKsXXgdEEuYrVi6F95fVuBLuCtb1GlZTSP4rqBNJvf+Hkfuy4oPxuC4jMvZ1jcpwXthMBhtsIDUxdQhYtcjNHitXZIq118UWa9IcDZU3uK1S2TvybZfFYH3uDtckzc6uD95UlbwvgyzNj43UUl2jcoiani3uESfLjvuLtE83tHV3R/d3HK/tdEwFnvC2HSyNBWtHrG7TWMYey8hcBItQwf6GCzJRuqE9DPN/6E2volG879sedSURNocYMMZjbuEmA50agj2lqQATFE7nLHZZpcgRJ/HXcTpmWU36+6nEnZbkIub0DbSG2pEQkFx4Fjz2C8Lr0y8Cx4TrhITcVJq7FB+ZNtsQp7Jj7ux/1wW3XjjiS5mpzAZ6CLv7QMHJO6y4vram23Wa3lZ33xn8xq+sbDvwc5Zvap78b3fhu21cvZace1Dy6IsBjbk47OTi1AWJ+V0Whar85qYI6E+bSdXGegMPGS3UMUe6ByK0B2JdLlp0/mswA52PjudxfR9vtrRP3neM2Bv9EI5+LVpdv8g5Wr5Nw==
"simplified"
i see more text
oops, nevermind that rogue debug log in there. I was logging before
Interact does not work in Unity editor, so you cannot preview it without opening VRChat.
so interact should work for all platforms?
Interact works in-game.
@acoustic delta true! But it seems like the issue is the IsUserInVR node. It doesn't seem to be working at the moment, at least in my fevered 1am test 😅
yeah, cutting out MouseDown for now solves your double-fire issue, but it does mean you'll need to Build & Test to see it working.
I'll do some more testing of the IsUserInVR node this week. If it's not behaving the way it should be, I'll file a bug and we'll get it fixed.
You add it as a parameter in Steam
There is this fancy launch script you can use which will ask you every time if you want VR or not, but much easier to just add --no-vr to steam arguments.
ooh that is fancy. I've always done it by just launching VRChat with my headset unplugged 😛
AFAIK you also need --enable-debug-gui --enable-udon-debug-logging to see Udon logging in-game.
but I use an Oculus Quest + link so that's probably simpler for my setup than many others
welp now this works
yeah, it's a good idea to learn about steam arguments.
I can't help with Oculus Quest
@fallen shore glad to hear it!
oh btw @acoustic delta I remembered why I was thinking we needed the Layer set to Interactive. I believe that's needed for UI elements.
anyways, it's quite late for me in the PST so I'm off to bed! Good luck everyone.
how do I make text etc appear on a users screen in vr? it "works" in desktop mode but i think it breaks the vrc menu in desktop, couldnt interact with it
or is this not allowed / against the rules
Is there any way for me to get the game object of the local player?
@zealous aspen No, they want to keep that internal. We are limited to the available Player API functions to interact with the player.
Alright
What did you want the GameObject for? Maybe theres an API function that covers your need
I wanted to make sure that I'm colliding with the localplayer and not another one of my colliders that are trying to see if theyre colliding with the local player so that it doesn't forkbomb, all while still having the colliders intersecting. They are on the PlayerLocal layer.
But I think I have it figured out
Actually that may not have been my issue in the first place
Use mouse down insted of interact so you can click it in the editor @fallen shore @acoustic delta @floral dove
is this thing worth it if it meant older worlds being butchered the way they have?
Umm ok I'm having a bit of issues with detecting the player
I need to detect a collision between the local player and a trigger box collider. How would I do this?
@cerulean hare Don't do instead - if you have to, do mouse down in addition
Using mouse down is an accessibility issue for VR players or people using other types of controllers. Please don't do this.
Also, you can use a UI Button to call Interact() on your behavior
if you install Merlin's EasyEventEditor, it contains an Invoke button that you can use to manually click a UI Button from the inspector
and that can do an Interact event
Its to test right away the interaction. Instead of waiting to load ingame
Change it after
I'm also trying to create an interactable object in U#. Could someone tell me how I would go about doing this?
☝️ i would also like to know how i can do this. does somebody know how to do it?
no idea, im uploading right now then i can tell if it works
but just use override Interact() in the script and it should? be fine
¯_(ツ)_/¯
close
gives me the interact option but doesnt(?) run the script
also wish id knew how to change the "use" text
i was trying to override Interact method but doesnt even show up as interactable object in VRC 🤔
example script works fine though...
🤔
using UdonSharp;
using UnityEngine;
public class UdonBoxResetter : UdonSharpBehaviour
{
[SerializeField]
public UdonBox udonBox = null;
[SerializeField]
public Vector3 respawnPos = Vector3.zero;
[SerializeField]
public Quaternion respawnRot = Quaternion.identity;
public override void Interact()
{
udonBox.transform.SetPositionAndRotation(respawnPos, respawnRot);
}
}
```this should atleast show interaction highlight on VRC right...?
Is sharp really usefull?
These noodles dont tell me anything and nothing makes sense for me. How do you even create a button that could toggle things on and off?
If you dont to learn now use sdk2
Is it only for me, or GameObject SetActive even if have specified gameobject still changes to instance?
@wet pumice it should 🤔
Wait for documentation
why doesnt it work then 🤔
try removing all unnecessary stuff, just keep the Interact() and see
is it just my issue with project setting...?
it worked with just empty public override void Interact() method
🤔
is that really it?
removed [SerializeField], still not working. ;w;
@scarlet lake if you will know how to toggle things could you let me know?
@zenith hatch Ive fixed all my issues with SDK3/Udon by not giving a fuck about it and using SDK2 that has simple way of making a toggle button.
cool
what other class
UdonBox
whats that
how do i get UdonSharpBehaviour classes is next problem ._.
why do you need them?
so you can communicate each classes
well depending on the way you want to communicate. if you just want to read a variable or something. that is easy but actually triggering functions still have no clue about that.
i cant have UdonSharpBehaviour extended class as variable. so i cant even read variables...
this is the way you read variables of udonbehaviour's
this is the way i toggle something.
ohh
thank you so much for this information >_<
i think now i can do what i wanted to do!
@long sentinel You can change the interaction text in the Debug Mode of the Inspector
i see, thanks^^
ok found out how to trigger functions. i Thought i tried this before but it seems i didnt match the method name exactly thats why it wasnt activating.
What is the player name/tag or other identifier to be able to find it with GameObject.Find ?
You cannot access the Player object. You can only interact with the Player via its API
Ok ty. Is there documentation for player api that I can go thrugh?
There currently isnt any documentation on the VRChat specific nodes afaik.
Just go through all the methods and...guess what they do lol
Ok, will do that. Think I found what I needed in it.
are old udon scripts meant to be supported in this release?
Is there a way to reset objects all rotations and only y position on a pickup? Can udon help?
Depends how old, there were a few breaking changes a while ago that require reupload @meager dove
hmmm, they're pretty old, I guess I will have to remake them from scratch
Is this just me or a known bug? (Public checkbox, synced etc. are just displayed as Bool)
Thats a known bug. Copy Pasting the node will temporarily fix this. Will probably be patched sometime.
Alright
I'm getting this error when trying to compile a script
it seems to be caused by the second input in the vector subtraction node, disconnecting it makes it compile again
I'm guessing this is a bug?
Hello! i want to start learning and coding my own experiments and minigames into this new amazing UDON world, how can i start into it?
@delicate hazel iirc you need to use the function in ui, "SendCustomEvent" I might be wrong though.
@scarlet lake Can recommend first reading Tuppers Getting Started tutorial : https://ask.vrchat.com/t/getting-started-with-udon/80
Please read this post entirely. We know it is a lot, but there’s a lot going on! Most basic questions are answered in this post. Hello all! If you’re reading this, welcome to VRChat Udon! We’ve been working on this for quite a while, and are super excited about getting you in...
Anyone got a example for collison check with the player? Perferably in U#.
For people asking for Udon# stuff, it’s probably best to join the discord for it and ask there
is it possible with udon to trigger a ragdoll like the sdk2 combat system?
Not yet
how do you do onTriggerEnter in UdonSharp?
can someone explain to me how to fix the black bars on the left and right side of the screen?
@rotund willow Cant find the function in UI. Becuase the scrpit not on the gameobject.
I try to use script AddListener but Udon cant compile.
@delicate hazel This
im trying to make a public variable appear on the text but i have no idea how to do it
i want to make an count variable everytime i press the cube
I tried importing the SDK but ran into issues. I don't see the menu option for VRChat SDK and have a bunch of errors in the console
@rotund willow I see .
@gentle adder Go to edit, then project settings, then under player, find this area and change the scripting version to .net 4,x
Ah okay thank you
@storm copper are they 2 different programs?
it wasn't written anywhere in the docs to do that
will I have to do this for every project I make?
I think it's because making a new 2018 project sets it to 4,x by default
I haven't had to do it for new projects but older ones
I think
player
thanks
it's on the left section
I don't use graph but I believe you have to use a GetProgramVariable for that
might be wrong but I think this is the node you need
Also, is the control panel not supposed to have any buttons for menus?
it should
that much I can't help with, sorry
np
weird... now it has a new picture as well xD but turns that deleting it and reimporting fixed it
You can use the "UIText set Text" node to change it.
still im having some problens to figure it out to appear on the cube
it is supposed to appear 30 instead of 1 whenever i click play
@storm copper your UdonBehaviour needs a reference to your UIText objet. Check out the UIButton Master object and program in the SyncUI example scene that comes with Udon.
Hey, i imported VRCSDK with UDON in my Unity 2018 but VRCSDK button is not appearing, do you know what can cause it?
Fixed, had to create a new project.
@floral dove thanks
I readed the guide of Udon, but is there any guide to start making your own worlds with UDON? coding with UDON guide or something like that?
Tupper made a "Hello World"-styled tutorial where he makes a cube rotate.
We’ve got a set of videos here for you to check out to get you started in Udon and with some basic concepts. Let’s meet the VRChat Udon version of Hello World-- the spinning cube! Video 1 - Introduction Video 2 - Input and Flow Video 3 - Public Variables Video 4 - Program ...
@scarlet lake there's also a readme in Assets/Udon/Examples/Readme.rtf that takes you through all the included example scenes. If you go through that, you should be well on your way to making your own interactive things!
How can use local testing in PC
This sdk always start in VR mode.
@rotund willow I try it out. It seem like doesnt work.
@delicate hazel there's a couple ways to do this. One of the easiest is - first launch VRChat directly from steam and choose Desktop mode. I think it will remember this next time its launched. However, sometimes having a VR headset active while running VRChat will cause issues with head orientation. I always unplug my headset while I'm testing things in Desktop mode.
anyone how i can make a avatar pedestal on udon?
@floral dove You actually unplug your HMD? If I would do that everytime I try to test a complex system, I would go mad xD
There is a VBS script (so windows only I think) that intercepts the VRChat Process and appends some arguments. It sounds shifty, but you can look at the code, and if you understand a bit of Windows vbs then you'll see that it's nothing crazy.
Heres the link: http://secondstrife.com/vrchat-vbs/

