GithubHelp home page GithubHelp logo

orels1 / udontoolkit Goto Github PK

View Code? Open in Web Editor NEW
172.0 7.0 4.0 36.69 MB

A set of purpose-built Udon Behaviours and tools to make your own

License: MIT License

C# 95.05% ShaderLab 4.95%
vrchat udon unity gamedevelopment udon-behaviours

udontoolkit's Introduction


Purpose-built Udon Behaviours and tools to make your own

Built with โค๏ธŽ by orels1 and contributors

Quick Start Guide

Requirements

Installation

  • Grab the latest package from releases
  • Import it into the project

If you're upgrading from version prior to 1.x.x - you'll need to follow these upgrade steps to upgrade

  • When importing you can select what to import:
    • Internal: REQUIRED. Contains all the editor functionality
    • Systems: Various systems listed in the SYSTEMS section of the documentation
    • Behaviours: A collection of scripts that perform actions in the world. You can find the full list in the BEHAVIOURS section of the documentation
    • Demo: assets and examples scenes for all the systems and behaviours. You should import this only if you are importing the full package
  • Open your Project Settings -> UdonSharp and in the Default Behaviour Editor select UdonToolkit Editor

Copyright

Copyright (c) 2020 orels1

Licensed under the MIT license.

udontoolkit's People

Contributors

esnya avatar orels1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

udontoolkit's Issues

Merge Controller code into the UdonSharpBehaviours

  • Merge AreaTrigger
  • Merge UniversalTracker
  • Merge UniversalAction
  • Merge InteractTrigger
  • MergeLerpedFollower
  • Merge ObjectBoundaryTrigger
  • Merge NetworkedTrigger
  • Merge PlatformTrigger
  • Merge SecretActions
  • Merge ShaderFeeder
  • Merge SkyboxAdjustment
  • Merge FogAdjustment
  • Merge UIReadout

Reorderable List causes replacement of values

Steps to reproduce:

  1. Create a program like this
public class TestBug : UdonSharpBehaviour
{
    public string testString = "abc";
    public TestBug[] testArray;
}
  1. Create 3 GameObjects with this program and assign unique testString values but don't assign anything in the testArray yet
  2. Verify all have unique values in testString
  3. Add element to testArray on the first object and reference it to the second object
  4. Add element to testArray on the second object and reference it to the third object
  5. Inspect the first object again
  6. The second object is now replaced with the values of the third object

Popup crashes when used on a regular array

If you try to add a popup to a regular array - it will crash due to not being suited for that (the Property Drawer gets passed the data SerializedProperty` and it just crashes and burns)

[Popup("Handler")]
public string[] stuff;

Need to handle it in the UTEditor code

  • Avoid nested properties in popups
  • Handle the popups directly in the RenderArray code same way as the RenderStackedArray does it
  • Refactor the popup lookups to a UTUtils function
  • Documented the updated logic

Sound Occlusion Behaviour

In terms of probes i think i can do it the simple way allowing maximum one probe per area so you just define like a reflection probe with a sample point and a bounding box, so its just a box trigger collider and not some overly smart and expensive system to figure it out

  • Get rid of the Controller and move stuff back
  • Add support for probes, can try the Remedy way
  • Set up the occlusion triggers that adjust the raycast target to a probe
  • Add a handle for the occlusion trigger to place the probe
  • Add options to the probes for configuring relevant falloff
  • Retarget the system to the probe when present
  • Allow to close/open the proxy for doors and stuff

Update:
Somewhat figured out the basics but i'm not really using the proxy positions too much right now, i'm just slapping and arbitrary modifier on top. Which works, but i still wanna try out some kind of lerping to the target position of the proxy, just need to make sure it's a flat timing, and it correlates to the filter/volume adjustments.
Also need to look into compltely yeeting the modifier and doing it a different way - where proxy completely overwrite the min/max and then makes it so the behaviour now scales locally. That can work, but its a bit more fiddly. Need to play around more

  • Add basic reverb adjustment, probably need a bit more tweaking

This will be closed off due to Xiexe finalizing his own system that does the same

Add explanation of the Attribute stack to the docs

It is not really obvious that the Attributes from UdonToolkit work like a modifier stack and unwrap in reverse. so if something says that the field is hdden - it will hide the Attributes before it in the field attributes list

Add basic guides

  • Skybox day/night cycle
  • Object Boundary Trigger
  • Area Trigger
  • Secret action
  • Door

Add support for Drag & Drop on Arrays and ListViews

Dragging & Dropping on list views will automatically try to populate the fields with correct values for both arrays.

So if you have an array of GameObject and UdonSharpBehaviour - it will populate both fields with corresponging values of the objects being dragged

  • Add a "clear all values" button for quick re-filling of the list

Helpboxes applied to arrays do not respect the provided methodname

Example code:

    public bool TestBool;

    [UTEditor]
    [HelpBox("This should be hidden if TestBool is false", "@TestBool")]
    public string[] TestArray;

    [UTEditor]
    [HelpBox("This should be hidden if TestBool is false", "@TestBool")]
    public string TestString;

TestString's helpbox gets hidden but TestArray's does not

Document SoundOcclusion

Sound Occlusion got canceled due to there being a better solution close to release, so this is not needed anymore

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.