TsukimiSharp Reference
TsukimiSharp is a subset of C# that compiles to Udon, which runs inside VRChat worlds.
Getting started
Section titled “Getting started”| Page | Contents |
|---|---|
| Setup | Installing from VCC or ALCOM, your first script, and the samples |
Runtime foundations
Section titled “Runtime foundations”| Page | Contents |
|---|---|
| Udon’s execution model | How it runs on Udon, and why the constraints exist |
| Program shape | File layout, namespaces, visibility, name resolution |
| Events | List of events the runtime calls |
| Initialization and execution order | Initializers, declaration order, up to the first event |
What you can write
Section titled “What you can write”| Page | Contents |
|---|---|
| Lexical structure and literals | All forms of numeric and string literals |
| Types | Types you can use (section below) |
| Conversions | Which conversions are allowed, type tests, boxing |
| Variables and how arguments are passed | Kinds of variables, ref / out / in, definite assignment |
| Members | All forms of members you can declare |
| Control flow | Branching, loops, statement structure |
| Expressions | Operators, strings, null handling, primary expressions |
| Patterns | All pattern forms and exhaustiveness |
| Numerics | Values on overflow, conversions that halt |
| null and references | Sources of null and how to handle it safely |
| Attributes | List of attributes that have meaning to the runtime |
| Extension methods | How to write static helpers |
| Preprocessor | Directives you can use |
Working with the environment
Section titled “Working with the environment”| Page | Contents |
|---|---|
| Working with other components | Getting, calling, referencing |
| Sync | Synced variables, ownership, events |
| Kernels | Running computation on the GPU, forms you can write inside a kernel |
| Running kernels | Buffers, execution, retrieving results |
Look things up
Section titled “Look things up”| Page | Contents |
|---|---|
| Errors | Look up by error number |
| List of boundaries | Mechanisms that don’t exist, and how they get rejected |