Advanced Search
Search Results
32 total results found
Abstract Classes
Just like C#, which UdonSharp is based on, now supports abstract classes! FOLLOWING PAGE CONTAINS MATERIAL THAT IS WORK IN PROGRESS! What are abstract classes? The correct definition of "abstract" is "missing or incomplete implementation". In simple terms,...
Improve Slide Stability With Modified Rigidbody Interia Tensor
FOLLOWING PAGE CONTAINS MATERIAL THAT IS WORK IN PROGRESS! Modifying inertia tensor is a useful "hack" for improving the slide stability of vehicles that use Unity's native WheelColliders. If you are developing your own wheel collider solution, this workaroun...
UdonExplorer - What, Why, Where?
What is UdonExplorer? UdonExplorer is an open source Unity Editor extension for exploring all of the UdonBehaviours in your VRChat world scene. UdonExplorer provides an extensive overview of all of the properties, symbols and entry points on the UdonBehaviou...
Introduction
What is Waltzer? A Waltzer is a flat fairground ride that often forms the centrepiece of traditional British and Irish fairs. The ride consists of a number of cars which spin freely while rotating around a central point, in much the same way as a carousel...
My first Waltzer prototype was the second world I ever uploaded
"If I can create on the platform, I will try to make a Waltzer!" As soon as I started creating worlds in VRChat, I obviously tried making a Waltzer! As you may expect, the world doesn't even work anymore because of the outdated version, but it is there to ...
SDK2 - Getting Creative
Working around SDK2's limitations Given the limited tools available in the SDK2, I had to get creative with the feature implementations. The base of the ride running on a single client had no issues since it was an animation with the live rigidbodies of th...
Interactable World Space UI Canvas
This is still just the raw structure of the steps involved! Images and more details will be added soon. Create a UI canvas Right-click on your hierarchy, click on "UI > Canvas" Switch Render Mode on Canvas to World Space Reset the Canvas' Rect Tran...
Namespaces
What are namespaces? Namespaces are a fundamental feature in C# and are used to control the scope of your projects. When developing anything with UdonSharp, declaring your own namespaces should be one of the first steps of your development process. If a cre...
Access Modifiers
What Are Access Modifiers? All types and type members in C# have an accessibility level and access modifiers are for controlling where they can be used from. Caller's location public protected internal protected internal private protected pri...
Assembly Definitions
Assembly Definitions can be overwhelming for beginners, but should be essential knowledge for developers of widely used prefabs made with UdonSharp. I have just released a new Unity Editor extension for automating assembly definition generation: Experimental ...
Terminology
"VCC", "VPM", "Repo", "Package"? - This page is for giving you an overview of what everything means VRChat Creator Companion (VCC) Standalone application developed by VRChat for managing Unity projects for world and avatar creation and the packages in those p...
Package Manifest
VPM Package Manifest Package manifest is a JSON file contained at the root of the package and is used to define the properties of the package, such as name, version, author, dependencies, etc. UPM Properties Unity UPM package manifest documentation: https://d...
Relative Project Paths
When you want to save assets from scripts in your Unity project, you may often run into an error explaining that you must use relative paths. This simple class (should) converts all paths into relative paths: using System; using System.IO; using System.Lin...
Scriptable Objects
CreateAssetMenu Attribute // menuName: Path to the menu item // fileName: Default name of the new file // order: Priority of the menu item (100 is often reasonble) [CreateAssetMenu(menuName = "VUdon - Vehicles/Data Presets/Car Spec Sheet", fileName = "Ne...
Build Automation
Receive Callback On Build using UnityEditor.Callbacks; namespace Varneon.Editor.BuildPostProcessors { public static class BuildPostProcessor { // Callback order defines the order in which the callback will be invoked [PostProc...
OnSceneGUI In Editor Window
This is how you can get OnSceneGUI features like Handles to work on EditorWindows. private void OnEnable() { // Ensure that there is no delegate callback SceneView.duringSceneGui -= OnSceneGUI; // Define the callback for the delegate Sc...
Custom Editor Menu Items
How to create different types of menu items for the Unity Editor. Custom Toolbar Menu This is how you can make a custom toolbar menu for pointing into any static method. namespace Varneon.VUdon.VehiclesLite.Editor { public class CarSetupWizard : E...
Get Current Project Window Directory
This is how you can get the current directory of the Project window: using System.Reflection; using UnityEditor; using UnityEngine; public static string GetActiveProjectWindowDirectory() { // Use Reflection to get the hidden method for getting the f...
Detecting a User About to Type on InputField
Due to VRChat not being the most consistent with sent UI events, especially between desktop and VR, it can be difficult to reliably detect when a user is about to start typing on a UI InputField. During the development of Udonity I faced this specific issue w...
Rebuilding UI Layout
If you are using Unity UI Auto Layout components on your UI, you may face problematic situations where the elements are getting stuck in weird positions due to layout not being rebuilt when necessary. In these cases you can simply call LayoutRebuilder.ForceRe...