Help us improve
Share bugs, ideas, or general feedback.
npx claudepluginhub kurotori4423/udonsharp-coding-skill --plugin udonsharp-codingHow this skill is triggered — by the user, by Claude, or both
Slash command
/udonsharp-coding:udonsharp-codingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
---
references/en/udon_class.mdreferences/en/udon_creatorEconomy.mdreferences/en/udon_imageLoading.mdreferences/en/udon_network.mdreferences/en/udon_network/01_basics_minimum.mdreferences/en/udon_network/02_implementation.mdreferences/en/udon_network/03_sync_options.mdreferences/en/udon_network/04_synced_types.mdreferences/en/udon_network/05_design_tips.mdreferences/en/udon_network/README.mdreferences/en/udon_persistence.mdreferences/en/udon_playerTracking.mdreferences/en/udon_stringLoading.mdreferences/en/udon_uGUI.mdreferences/jp/Troubleshooting.mdreferences/jp/udon_class.mdreferences/jp/udon_creatorEconomy.mdreferences/jp/udon_imageLoading.mdreferences/jp/udon_network.mdreferences/jp/udon_network/01_basics_minimum.mdUnity 6 C# scripting guide. Use when writing MonoBehaviour scripts, handling lifecycle events (Awake, Start, Update, FixedUpdate), using coroutines or async/await (Awaitable), working with ScriptableObjects, events, delegates, or core APIs like Vector3, Quaternion, Time, Debug. Based on Unity 6.3 LTS documentation.
Provides Unity C# scripting patterns covering MonoBehaviour lifecycle, coroutines, async/await, physics APIs, raycasts, collisions, animations, NavMesh, pooling, singletons, ECS, Jobs, and Burst.
Explains C#-specific conventions, API differences from GDScript, project setup, and interop for Godot 4.3+.
Share bugs, ideas, or general feedback.
UdonSharp generally follows C# syntax, but its features are limited.
if, else, while, for, do, foreach, switch, return, break, continue, ternary operator (condition ? true : false), ??(true || CheckIfTrue()) will not execute CheckIfTrue()typeof()out or ref parameters, such as many variants of Physics.Raycast()paramsOnPlayerJoined event with a VRCPlayerApi argument is valid.[RecursiveMethod] attribute[] collections and by extension UdonSharp only supports arrays at the moment..GetType() will not always match what you may expect since U# abstracts some types in order to make them work in Udon. For instance, any jagged array type will return a type of object[] instead of something like int[][] for a 2D int jagged array.You cannot create a new GameObject using new GameObject() and similar APIs. In UdonSharp, you create new objects by cloning an existing GameObject in the scene using Instantiate(). Additionally, only GameObject can be instantiated via Instantiate().
Utilities.IsValid for null checksbool IsValid(object obj) returns true when obj is not null (or is otherwise valid). In UdonSharp, this is faster than doing null checks with ==.
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
public class UdonSharpScript : UdonSharpBehaviour
{
}
If the problem you are addressing involves network synchronization, read the document references/en/udon_network/README.md. These documents describe the concepts and methods required to implement network logic in Udon.
If you need shared logic, encapsulation, or inheritance, be aware that UdonSharp has important limitations. See references/en/udon_class.md.
If you are implementing things like gaze-following objects or objects that follow avatar bones, see references/en/udon_playerTracking.md. It includes important notes and pitfalls for implementation.
If you need to save player-specific data (like high scores, inventory, or settings) across sessions or instances, refer to references/en/udon_persistence.md. This document explains how to use PlayerData and PlayerObjects for persistent storage.
If you need to retrieve text/JSON data or images from external servers at runtime, see references/en/udon_stringLoading.md and references/en/udon_imageLoading.md. These documents explain how to use VRCStringDownloader and VRCImageDownloader with their respective callbacks and limitations.
If you need to handle in-game purchases, check product ownership, or utilize the VRChat Creator Economy SDK, refer to references/en/udon_creatorEconomy.md. This document explains how to use UdonProduct, the Store methods, and purchase events in UdonSharp.